:::info javascript是单线程,所有事件都是异步进行,例如项目中需要等待ajax返回一个结果,如果之后的方法都写在ajax里success里很多的不方便,这时候用promise做同步操作 :::
//写法
function aaa(){
return new promise((resolve, reject)={
resolve()//成功时返回
reject()//失败时返回
})
}
//调用
aaa().then((resolve)=>{
//返回成功
}).catch((reason)=>{
//返回失败
})
//需要多个方法都完成再运行
Promise.all([p1, p2]).then((resolve)=>{
//resolve返回是个数组[]
})
//多个方法有一个成功即返回
Promise.race([p1, p2]).then(function (result) {
console.log(result); // 'P1'
});