异步

Promise

new Promise((resolve,reject) => {
resolve("成功") //成功调用:resolve(值) 触发then()执行
reject(new Error("失败")) //失败调用:reject(值) 触发 catch()执行
}).then(result => {
//成功
}).catch(reject => {
//失败
})

promise.all

Promise.all([<promise object1>,<promise object2>,...]).then(result => {
// 所有promise成功,result:[<promise object1>,<promise object2>,...]
}).catch(reject => {
// 第一个promise对象,抛出的异常
})

三种状态

一旦状态被兑现/拒绝,就无法再改变了

  • 待定(pending):初始状态,既没有被兑现,有没有被拒绝
  • 已兑现(fulfilled):意味着,操作成功完成
  • 已拒绝(rejected):意味着,操作失败

回调函数地狱

回调函数不断嵌套

promise 链条调用

new Promise()​ -> .then(回调函数)​ -> 新的 Promise对象

  1. 利用then函数返回一个新的Promise对象特性,一直串联下去

async和await

在async函数内使用await关键字可以让下面的代码等待await执行完成

async function <function>(){
const <a> = await axios({ url: '<url>'})
const <b> = <a>.data
}