co 模块的用法,下面两种写法有什么不同吗
var list=[1,2,3,4,5,6]; // 第一种 co(function *(){ var arr=[]; for(var i in list){ arr.push(yield getlist(list[i]) )); } return arr; }).then(function (total){ res.send(total); }, function (err){ next(err); }); //第二种 co(function *(){ var arr=[]; for(var i in list){ arr.push( getlist(list[i]) ); } var all = yield arr; return all; }).then(function (total){ res.send(total); }, function (err){ next(err); });
不知道上面两种写法哪个是异步,哪个是同步,只从返回结果上面看,两个竟然一模一样。
1 回复
getlist 都是异步执行的, 只不多多个 getlist 之间第一个一个一个执行的, 第二种是并行同时执行的