Promise.resolve() 方法

Promise.resolve方法允许调用时不带参数,直接返回一个resolved状态的 Promise 对象。

所以,如果希望得到一个 Promise 对象,比较方便的方法就是直接调用Promise.resolve方法。

需要注意的是,立即resolve的 Promise 对象,是在本轮“事件循环”(event loop)的结束时,而不是在下一轮“事件循环”的开始时。

setTimeout(function () {
    console.log(3);
}, 0);
Promise.resolve().then(function () {
    console.log(2);
});
console.log(1);

上面代码中,setTimeout(fn, 0)在下一轮“事件循环”开始时执行,Promise.resolve()在本轮“事件循环”结束时执行,console.log(1)则是立即执行,因此最先输出。

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Promise.resolve 是一个在 JavaScript 中用来创建一个已经解决(resolved)的 Promise 对象的方法。它返回一个表示解决结果的 Promise 对象。 当传递给 Promise.resolve 的参数是一个包含 then 方法的对象时(称为 thenable 对象),Promise.resolve 方法会将该对象转换为一个 Promise 对象,并将其解决结果作为该 Promise 对象的解决值。如果传递给 Promise.resolve 的参数已经是一个 Promise 对象,则它会直接返回该对象,不做任何处理。 以下是 Promise.resolve 的示例用法: ```javascript // 创建一个已解决的 Promise 对象 const resolvedPromise = Promise.resolve("Resolved Value"); resolvedPromise.then(value => { console.log(value); // 输出 "Resolved Value" }); // 创建一个已解决的 Promise 对象,通过 thenable 对象 const thenable = { then(resolve) { resolve("Thenable Resolved Value"); } }; const resolvedThenable = Promise.resolve(thenable); resolvedThenable.then(value => { console.log(value); // 输出 "Thenable Resolved Value" }); // 返回传入的 Promise 对象 const existingPromise = new Promise(resolve => { resolve("Existing Promise Resolved Value"); }); const resolvedExistingPromise = Promise.resolve(existingPromise); resolvedExistingPromise.then(value => { console.log(value); // 输出 "Existing Promise Resolved Value" }); ``` 解释: Promise.resolve 方法的作用是将一个值转换为一个已解决的 Promise 对象。如果传入的值是一个 Promise 对象,那么 Promise.resolve 方法会直接返回该对象。如果传入的值是一个 thenable 对象,它会转换为一个 Promise 对象,并将其解决结果作为解决值。如果传入的值是一个非 thenable 对象,它会被包装在一个新的 Promise 对象中,并将其作为解决值。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值