xb18
xb18
文章78
标签0
分类0
Promise

Promise

示例

resolve后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Promise resolved");
console.log("After resolve");
reject(new Error("Error occurred"));
console.log("After reject");
}, 1000);
});

promise
.then((result) => {
console.log(result);
return "Continued";
})
.then((value) => {
console.log(value);
})
.catch((error) => {
console.error(error);
});

执行结果

1
2
3
4
After resolve
After reject
Promise resolved
Continued

根据Promise的规范,resolvereject的执行不会立即终止函数体的执行,而是会将后续的代码添加到微任务队列中,等到当前函数体执行完毕后再执行。

这也是为什么在上面的示例中,resolvereject之后的代码没有立即执行,而是在整个Promise的函数体执行完毕后才执行的原因

本文作者:xb18
本文链接:https://moelj.com/2024/02/26/Promise/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可