Qu'il s'agisse d'une promesse ES6 ou d'une promesse bluebird, d'une promesse Q, etc.
Comment puis-je tester pour voir si un objet donné est une promesse?
.then
méthode qui n'est pas une promesse, ne se comporte pas comme une promesse et n'avait aucune intention d'être utilisée comme une promesse. Vérification d'une .then
méthode vous indique juste que le si l' objet n'a pas avoir une .then
méthode, vous n'avez une promesse. L'inverse - que l'existence d'un moyen de la méthode que vous faites ont une promesse - n'est pas nécessairement vrai. .then
.then
méthode. Oui, cela a le potentiel de faux positifs, mais c'est l'hypothèse sur laquelle toutes les bibliothèques de promesses comptent (car c'est tout ce sur quoi elles peuvent compter). La seule alternative pour autant que je puisse voir est de prendre la suggestion de Benjamin Gruenbaum et de l'exécuter dans la suite de tests promesse. Mais ce n'est pas pratique pour le code de production réel.
.then
méthode, mais cela ne vous dirait pas que ce que vous avez est définitivement une promesse. Tout ce que vous savez à ce stade, c'est que vous avez quelque chose qui expose une.then
méthode, comme une promesse.