Niezależnie od tego, czy jest to obietnica ES6, czy obietnica bluebird, obietnica Q itp.
Jak sprawdzić, czy dany obiekt jest obietnicą?
.then
metodę, która nie jest Obietnicą, nie zachowuje się jak Obietnica i nie miał zamiaru być używany jak Obietnica. Sprawdzanie .then
metody informuje tylko, że jeśli obiekt nie ma .then
metody, to nie masz obietnicy. Odwrotna - że istnienie .then
metody oznacza, że zrobić mają obietnicę - niekoniecznie jest prawdą.
.then
metodę. Tak, ma to potencjał fałszywych trafień, ale jest to założenie, na którym polegają wszystkie biblioteki obiecujące (ponieważ tylko na tym mogą polegać). Jedyną alternatywą, jaką widzę, jest skorzystanie z sugestii Benjamina Gruenbauma i przejrzenie jej przez pakiet testów obietnic. Ale to nie jest praktyczne w przypadku rzeczywistego kodu produkcyjnego.
.then
metodę, ale to nie powiedziałoby ci, że to, co masz, jest zdecydowanie obietnicą. W tym momencie wiedziałbyś tylko, że masz coś, co obnaża.then
metodę, na przykład obietnicę.