es6 promise 结束回调地狱

promise的三种状态:

pending---进行中

fulfiled---执行成功

rejected---执行失败

var promise = new Promise(function(resolve,reject){
  if(){
    resolve(value);
  }else{
    reject(reeor);
  }
})

promise.then(function (data){ 
   //success
}).catch(function(error){ 
 //error  
})
多个promise需要执行时可以用promise.all
promise.all(
  //一系列promise操作
).then(function(results){
}).catch(function(error){
});
.all是是promise一建立就开始执行的,不过是等所有的异步都执行完后才会返回给。then。且执行一旦开始,无法终止

async/await 表示为异步函数,但不会阻塞后面代码的执行,async函数返回的是一个promise对象,await关键字只能放到async函数里边。

async function timeout() {
    return 'hello world'
}
timeout().then(result => {
    console.log(result);
})

async function fn(){
    await timeoutFn(1000);
    await timeoutFn(2000);
    return '完成';
}
fn().then(success => console.log(success));
函数内所有的await函数才会返回状态,结果是执行完毕3秒后才会弹出'完成'。
原文地址:https://www.cnblogs.com/jiajiamiao/p/11671685.html