promise按顺序执行多个请求
时间: 2023-08-30 19:02:03 浏览: 154
Promise可以通过链式调用(chaining)的方式按顺序执行多个请求。
以一个简单的例子来说明:
```
function request1() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('请求1');
resolve();
}, 2000);
});
}
function request2() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('请求2');
resolve();
}, 1000);
});
}
function request3() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('请求3');
resolve();
}, 3000);
});
}
request1().then(() => {
return request2();
}).then(() => {
return request3();
}).then(() => {
console.log('所有请求执行完毕');
});
```
在上述代码中,我们定义了三个请求函数`request1`、`request2`和`request3`,每个请求都返回一个Promise对象。
通过使用`then`方法,我们将每个请求的`resolve`回调函数传递给下一个请求函数的`then`方法,这样就可以按顺序执行多个请求。当一个请求完成后,会自动执行下一个请求。
最后,我们通过在最后一个请求的`then`方法中添加一个回调函数,来表示所有请求执行完毕。
上述代码中的`setTimeout`函数只是为了模拟请求的耗时,实际应用中可以根据需求进行相应的修改。
阅读全文