我仍然不清楚调用解析器的 resolve() 与 fulfill() 之间的区别?我看到函数和术语“解决 promise ”和“履行 promise ”经常被争论不休。
我应该什么时候使用它们?
最佳答案
你应该使用resolve
。 deferredPromise.resolve(nextPromise)
意味着任何等待 deferredPromise
的东西现在都将等待 nextPromise
。如果 nextPromise
根本不是一个 promise,它就会变成一个已实现的 promise,继续通知等待它的任何东西该值已经可用。
fulfill
方法是一个坏主意,它将被弃用并最终完全消失。在所有有用的情况下,fulfill
在语义上等同于 resolve
。它存在的唯一理由是 deferredPromise.fulfill(value)
比 deferredPromise.resolve(value)
更容易被人类理解,因为 resolve
被重载以处理 nextPromise
和 finalValue
。
fulfill
存在的问题是 deferredPromise.fulfill(rejectedPromise)
在语义上是自相矛盾的。
关于javascript - q.js : difference between resolve() and fulfill(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280375/