Javascript 在循环中收集异步和同步数据 var数据=[10,21,33,40,50,69]; var i=0; var-dataSeq=[]; 而(我
我想我有你需要的 您的代码将如下所示:Javascript 在循环中收集异步和同步数据 var数据=[10,21,33,40,50,69]; var i=0; var-dataSeq=[]; 而(我,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我想我有你需要的 您的代码将如下所示: var data = [10,21,33,40,50,69]; var i = 0; var dataSeq = []; while(i<data.length){ if(data[i]%2 == 0){ store.findOne({'visibility': true},funct
var data = [10,21,33,40,50,69];
var i = 0;
var dataSeq = [];
while(i<data.length){
if(data[i]%2 == 0){
store.findOne({'visibility': true},function(err, data){
dataSeq.push(i)
i++;
});
}
else{
dataSeq.push(i)
i++;
}
}
if(i==data.length-1){
console.log(dataSeq) // Should Print [1,2,3,4,5]
return res.status(200).send({ message: 'Task Completed'})
}
我想这是你需要的
您的代码将如下所示:
var data = [10,21,33,40,50,69];
var i = 0;
var dataSeq = [];
while(i<data.length){
if(data[i]%2 == 0){
store.findOne({'visibility': true},function(err, data){
dataSeq.push(i)
i++;
});
}
else{
dataSeq.push(i)
i++;
}
}
if(i==data.length-1){
console.log(dataSeq) // Should Print [1,2,3,4,5]
return res.status(200).send({ message: 'Task Completed'})
}
你可以用像
你可以用像
据我所知,eachOf仍在并行运行;他说他希望它以串联方式运行。也就是说,他可能没有要求他真正需要什么,因为他的示例代码似乎不依赖于顺序操作。据我所知,eachOf仍在并行运行;他说他希望它以串联方式运行。也就是说,他可能没有要求r他真正需要的,因为他的示例代码似乎不依赖于顺序操作。为什么使用store.findOne?甚至不使用回调中的数据。为什么使用store.findOne?甚至不使用回调中的数据。
var async = require('async');
var data = [10,21,33,40,50,69];
var dataSeq = [];
async.eachOf(data, function(value, key, cb) {
if (value % 2 == 0) {
store.findOne({ 'visibility': true })
.then(function(doc) {
dataSeq.push(key);
})
.catch(function(err) {
return cb(err);
});
} else {
cb();
}
}, function(err) {
if (err) {
console.error(err)
return res.status(500).send(); # handle the error as you want
}
return res.status(200).send({ message: 'Task Completed'})
})