在node端调用接口。
有一个list页面,for循环里每次都会调用一次接口取信息,导致接口串行调用频繁,耗费时间非常多。
改用co模块来将放在一起统一调用后,速度提升非常多。疑问来了,为什么用co会变成并行调用接口了?
使用co后大致代码是这样:里面的几个函数都是去调用接口的函数。
for (var i=0;i<feedCount; i++) {
var item = {
offerDetails: getOfferDetails(),
feedPVCount: getFeedCount(),
beSavedCount: getFavedCount()
};
var defer = co(function* () {
return yield item;
});
results.push(defer);
}
results = yield results;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1、co() 将generator函数包装成promise
2、results是一个promise数组,可迭代的;若在yield后的是Promise数组或属性值为Promise对象的对象,则并行执行这些Promise。
具体你可以看下co源码: