0
私は複数のコールバックを実行しようとしていますが、同時に配列に値を格納していますが、最後の配列では空を返します。ここでノードjsで複数の非同期コールバックの後に配列値を保持する方法はありますか?
は私のコードです:
私が間違っているのvar sheetData = [];
async.forEachSeries(req.body.data, function (data, cb) {
sheet.find({accountid: req.body.id}, function (err, doc) {
if (doc == '') {// get the next worksheet and save it
var sheet = new sheet({
accountid: req.body.id,
sheetid: data.sheetid
});
var jsonData = {};
jsonData.sheetid = data.sheetid;
sheet.save(function (err, doc) {
if (!err) {
sheetData.push(jsonData); // trying to push in array , success
console.log("-----sheet data---- : ", sheetData);// data available here
}
});
}
});
cb();
}, function() {
console.log("-----sheet data---- : ", sheetData);// empty array
});
?誰も私を提案することはできますか? または、nodejsに他の代替手段がある場合。
ありがとうございます。
残念ながら、もう一度すべてのsheetDataを最後に取得しません。空っぽです。 – uday214125
私はこれを(doc!== '')に変更したときに(doc!= '')その正常に動作します。 ありがとう@Chris Satchell – uday214125
'!doc'を使用するとおそらく同様に動作します –