【发布时间】:2018-01-07 16:30:05
【问题描述】:
我用promise.all来限制并发访问次数,但是promise.all().then()不行,flag总是false,为什么!!
function getPage(singeUrl) {
return new Promise((resolve,reject)=>{
superagent.get(singeUrl)
.set({'Content-Type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'})
.charset('utf8')
.end(function (err, sres) {
if (err) throw err;
utils.singleRequest(sres,db)
});
resolve('resolve=='+singeUrl)
})
}
let flag = true;
pages.forEach((item) => {
if(flag){
flag = false;
let promises = item.map(function (url) {
return getPage(url);
});
Promise.all(promises).then(res => {
flag = true;
})
}
})
【问题讨论】:
标签: node.js concurrency es6-promise