new Promise() 是同步任务 会先打印 start
then 方法里是异步微任务
let p=new Promise(function (resolve,reject) {
console.log('start');
setTimeout(function () {
resolve('ok');
reject('no');
},1000);
});
p.then(function (n) {
console.log(n);
},function (n) {
console.log(n);
});
Promise.all 基本使用
Promise.all([
new Promise(function (resolve, reject) {
console.log(1)
setTimeout(() => {
console.log('time')
resolve('a')
}, 500)
}),
new Promise(function (resolve, reject) {
console.log(2)
resolve('b')
// reject('no')
}),
new Promise(function (resolve, reject) {
console.log(3)
resolve('c')
})
]).then(resArr => {
console.log(resArr) // 1 2 3 time ["a", "b", "c"]
}).catch(err => {
console.log(err) // 1 2 3 time 'no'
})
网友评论