q.js:是否可以知道承诺是否已经解决/拒绝

时间:2014-11-20 12:35:02

标签: promise q

在我的场景中,当我提出请求时,我会回复一个承诺。

最后我解决/拒绝延期的obj。

如果没有得到解决/拒绝,我想重复使用该承诺。

任何信息都会有用。

2 个答案:

答案 0 :(得分:9)

我通过查看q.js来源得到了答案。

deferred.promise.inspect().state

这将返回承诺的状态。

returns "fulfilled" if it was resolved or fulfilled
returns "rejected" if it was rejected
returns "pending" if it hasn't been resolved or rejected

答案 1 :(得分:1)

您可以使用不太冗长的状态检查方法。调用方法总是比检查===的状态更好。如果有拼写错误的方法,您将立即收到错误消息。使用===时,输入错误将返回false,这可能是一个错误。在Q API参考中,

promise.isFulfilled()

返回给定的承诺是否处于履行状态。当静态 版本用于非承诺,结果始终为true

promise.isRejected()

返回给定的承诺是否处于拒绝状态。当静态 版本用于非承诺,结果始终为false

promise.isPending()

返回给定的承诺是否处于未决状态。当静态版本 用于非承诺,结果始终为false