Promose
是异步编程的一种解决方案。解决回调函数嵌套过多的情况。
const promise =new Promise(function(resolve,reject){
setTimeout(function(){
resolve('执行成功')
},3000)
})
promise.then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
})
console.log(111)
先输出111,等待三秒之后输出‘执行成功’
promise.all([])
let p1 = Promise.resolve(3)
let p2 = 1337
let p3 = new Promise((resolve, reject) => {
setTimeout(resolve, 3000, 'foo')
})
Promise.all([p1, p3, p2]).then(values => {
console.log(values) // [3, f00, 1337]
})
promise.all会在上一个结果执行成功之后才执行下一个
promise.race([])
var p1 = new Promise(function(resolve, reject) {
setTimeout(resolve, 500, "one");
});
var p2 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, "two");
});
Promise.race([p1, p2]).then(function(value) {
console.log(value); // "two"
// 两个都完成,但 p2 更快
});
哪一个完成得快,就先输出哪一个的结果