Niezależnie od tego, czy jest to obietnica ES6, czy obietnica bluebird, obietnica Q itp.
Jak sprawdzić, czy dany obiekt jest obietnicą?
.thenmetodę, która nie jest Obietnicą, nie zachowuje się jak Obietnica i nie miał zamiaru być używany jak Obietnica. Sprawdzanie .thenmetody informuje tylko, że jeśli obiekt nie ma .thenmetody, to nie masz obietnicy. Odwrotna - że istnienie .thenmetody oznacza, że zrobić mają obietnicę - niekoniecznie jest prawdą.
.thenmetodę. 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.
.thenmetodę, 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.thenmetodę, na przykład obietnicę.