promise和async/await区别

简洁:异步编程的最高境界就是不关心它是否是异步。async、await很好的解决了这一点,将异步强行转换为同步处理。
async/await与promise不存在谁代替谁的说法,因为async/await是寄生于Promise,Generater的语法糖。

 

错误捕获
如果是reject状态,可以用try-catch捕捉

let p = new Promise((resolve,reject) => {
setTimeout(() => {
reject('error');
},1000);
});

async function demo(params) {
try {
let result = await p;
}catch(e) {
console.log(e);
}
}

demo();

区别:
1 promise是ES6,async/await是ES7
2 async/await相对于promise来讲,写法更加优雅
3 reject状态:
1)promise错误可以通过catch来捕捉,建议尾部捕获错误,
2)async/await既可以用.then又可以用try-catch捕捉

上一篇:ajax & promise 封装


下一篇:手写promise完成异常处理和状态只能够修改一次