Promise 串行执行
❗注意点:
-
直接写在Promise中的代码会直接同步执行。
例如:
const p = new Promise((resolve,reject)=>{ console.log('hello world!'); }); //hello world!
但声明一个变量,再将一个返回值为new的promise对象的函数赋值给这个变量,promise中的内容就不会运行。
-
then方法中的第一个参数为resolve的回调函数,其返回值为一个新的promise实例。
-
promise.all([p1,p2,p3,…]);是并行执行。
const p1 = () => {
return new Promise((resolve) => {
setTimeout(() => {
console.log('p1');
resolve();
}, 2000)
})
}
const p2 = () => {
return new Promise((resolve) => {
setTimeout(() => {
console.log('p2');
resolve();
}, 2000)
})
}
p1().then(() => {
return p2();
}).then(() => {
console.log('end')
})
promise数组串行待补充。