1,callback函数处理异步:代码逻辑复杂,可读性差----回调地狱;不可return; 2,promise处理异步: 对比callback,易读,可以return,不需要层层传递callback; 处理多个异步等待合并 3,async,await--ES2017 ,promise的语法糖
const promise = newPromise((resolve, reject) => {
// 三种状态
// pending fulfilled rejected => 进行中 已成功 以失败
// 调用resolve使状态成功,调用reject使状态失败
})
promise.then((res) => {}, (err ) => {})
Promise.all([a, b ,c]).then(res=> {
// 全部分会成功时调用
// 只要有一个失败,就返回失败的reject,其余取消
// res是一个数组,按照顺序分别储存a, b, c的返回结果
})
Promise.race([a, b ,c]).then(res=> {
// 某一个成功即可调用
// 常用于异步操作与定时器配合,制作网络超时
// res是首个返回的结果
})