随着Async/Await正式纳入ES7标准,这个号称异步编程终级解决方案用的人也越来越多。然而,使用过程中发现await表达式越多,创建Promise对象的冗余代码也越多,优雅感骤降。为此,本文结合装饰器(Decorator)来实现更优雅的异步编程。
使用
- 通过async关键字声明一个异步函数;
- await关键字仅在async函数中有效,并且期望一个Promise对象。await表达式会暂停当前async函数的执行,等待Promise处理完成并返回结果。
示例:
class Action {
step_1(value){
return new Promise((resolve, reject) => { // 返回Promise对象
console.log('[step_1]', value);
resolve();
});
}
step_2(value){
return new Promise((resolve, reject) => {
console.log(