javascript - Promise.resolve 与 resolve

标签 javascript promise

我有这个代码:

var promise1 = new Promise(function(resolve, reject) {
  setTimeout(() => {
         console.warn('Elo');
         resolve('First response');
      },
      1000);
})

promise1
.then((resp) => {
    console.warn('First then!');
    
});

并且它在一秒钟后解决了 promise ,然后控制台。警告'首先!'。

但是当我换行时:

resolve('First response');

对于

Promise.resolve('First response');

这是行不通的。 知道为什么吗?

也试过

return Promise.resolve('First response');

但它也不起作用。我不知道为什么。

你能帮我理解一下吗?

最佳答案

new Promise 构造函数将特定函数传递到您的回调中,它成为您的 resolve 参数。该 promise (您正在使用 new Promise 构建的 promise )只能通过调用特定的 resolve 函数来解决。

Promise.resolve 只是创建一个新的“预先解决”的 promise 。它不解决任何现有的 promise (也不会知道它应该解决的哪个 promise )。

关于javascript - Promise.resolve 与 resolve,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48764788/

相关文章:

javascript - 如何获取使 Angular 变脏的字段?

javascript - 使用 JS 检查用户是否为 EST 时区并且在设定的 EST 时间范围内

javascript - 如何从innerHTML字符串中删除隐藏标签

javascript - 为什么 Promise 中的resolve()之后没有抛出错误?

javascript - Cypress:使用 Promise 进行 HTTP 请求

javascript - 在 node.js 中删除文件的一部分

javascript - 如何旋转我生成的六边形点或生成它以使第一个点位于中心顶部?

angular - 如何在Angular2中拒绝Promise和处理/捕获错误

typescript - 有没有办法实现 <T>(x : Promise<AsyncIterableIterator<T>>): AsyncIterableIterator<T> in TypeScript?

javascript - JavaScript Promise.allSettled 有回调吗?