long long ago,异步编程的方法:
。回调函数
。事件监听
。发布/订阅
。Promise对象
未来已来
Promise对象是为了解决回调函数多重嵌套问题而提出的,允许将回调函数的横向加载,改成纵向加载,写法如下:
readFile(file).then(function(){}).then(function(){}).catch(function(){})
缺点:代码冗余
Generator函数——是协程在ES6的实现,最大特点就是可以交出函数的执行权(即暂停执行)
function* gen(x){
var y = yield x + 2;
return y;
};
var g =gen(1);
g.next(); // {value:3, done:true}
g.next(); //{value:undefined, done:false}
异步操作需要暂停的地方,都用yield语句注明
网友评论