javascript - q.js : difference between resolve() and fulfill()

标签 javascript asynchronous promise q

我仍然不清楚调用解析器的 resolve() 与 fulfill() 之间的区别?我看到函数和术语“解决 promise ”和“履行 promise ”经常被争论不休。

我应该什么时候使用它们?

最佳答案

你应该使用resolvedeferredPromise.resolve(nextPromise) 意味着任何等待 deferredPromise 的东西现在都将等待 nextPromise。如果 nextPromise 根本不是一个 promise,它就会变成一个已实现的 promise,继续通知等待它的任何东西该值已经可用。

fulfill 方法是一个坏主意,它将被弃用并最终完全消失。在所有有用的情况下,fulfill 在语义上等同于 resolve。它存在的唯一理由是 deferredPromise.fulfill(value)deferredPromise.resolve(value) 更容易被人类理解,因为 resolve被重载以处理 nextPromisefinalValue

fulfill 存在的问题是 deferredPromise.fulfill(rejectedPromise) 在语义上是自相矛盾的。

关于javascript - q.js : difference between resolve() and fulfill(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280375/

相关文章:

python - 如何使异步任务/协程返回值被分配

javascript - 在循环中排队同步异步请求

javascript - 使用生成器异步调用列表中的每个项目

javascript - 如何判断tinyMCE是否已经启动?

javascript - 带有 CSS 效果的 JQuery Ui .effect 不起作用

javascript - 为什么 TypeScript 将类包装在匿名函数中?

javascript - 使用 Promises 从 DynamoDB 异步检索数据

javascript - jQuery 无法从另一个按钮单击触发按钮单击

asynchronous - 如何测量 Julia 中函数的@async 运行时间?

javascript - 脚本中的阻塞 Node