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秒后才会弹出'
完成
'。