javascript - 返回已解决的 promise 和仅处理解决的常规 promise 之间的区别

标签 javascript

以下有什么区别: 在我看来,他们都返回了一个已解决的 promise ,但我认为这可能不正确。我想知道它们是否有区别?

getQuery =  function () {
   return Promise.resolve({
        name: "some query name";
   });
}

executeQuery = function () {
    return new Promise((resolve, reject) => {
           resolve(mockQueryResult);
    }); },

最佳答案

查看 ECMAScript 2015 specification (强调我的):

The resolve function returns either a new promise resolved with the passed argument, or the argument itself if the argument is a promise produced by this constructor.

然后在实现中进一步阅读:

6. Let resolveResult be Call(promiseCapability.[[Resolve]], undefined, «x»).

我相信这意味着根据规范,两者的结果是相同的。当然,如果您使用的是第三方库或 polyfill,您可能会得到不同的结果。

关于javascript - 返回已解决的 promise 和仅处理解决的常规 promise 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54314417/

相关文章:

javascript - 如何使用 jquery 添加 div 的副本?

javascript - Next.js 嵌套动态文件夹路由

javascript - 连接而不是添加的警报

javascript - 如何在javascript中声明变量

javascript - 从 firebase 数据库 Javascript 返回值

javascript - CSS 背景图片不会显示

javascript - Google map 自定义信息窗口

javascript - 调用通过 Javascript 加载另一个 HTML 的 Bootstrap Modal

javascript - 没有显示值

javascript - 从多个 Canvas 元素保存当前工作