Open
Description
续
之前基于co和ES6的generator确实使异步操作写得更好了#49 ,但是,依然不够优雅。这次使用ES7的async来解决这个问题。通过babel,这个语法已经可以应用在生产环境当中了(已经有人这么干了)。
demo
function sleep(timeout) {
return new Promise((resolve, reject) => {
setTimeout(function() {
resolve();
}, timeout);
});
}
(async function (){
console.log('start');
await sleep(3000);
console.log('=======');
await sleep(4000);
console.log('finish');
})()
坑
在用babel转义async语法的时候,需要提供stage-0的preset,否则会报错
regeneratorRuntime is not defined ...
具体问题参考这儿。
参考资料: