0
我想在async.parallel裏面運行兩個sequelize查詢,然後我可以在回調中將它們傳遞給一個窗體(雖然窗體集成不在這裏顯示)。當我運行它時會返回results.animals,但results.zones是未定義的。使用。然後裏面的異步並行
我可以從日誌中看到,在async.parallel回調函數已經運行之後,它在最後運行Zone.findAll。如果我只在一個區域中進行sequelize調用,那麼它可以工作,但不是在查詢state.findOne然後Zone.findAll時。
任何想法爲什麼會發生這種情況?我認爲async.parallel應該等待兩個完成之前完成回來?
async.parallel({
animals: function(callback) {
Animal.findAll().then(function(animalResult){
console.log("animals result: " + JSON.stringify(animalResult))
callback(null, animalResult);
})
},
zones: function(callback){
State.findOne({
where : { abbr : req.query.state.toUpperCase() }
}).then(function(state) {
console.log("State ID: " + JSON.stringify(state['id']))
Zone.findAll({
attributes: ['name'],
where: { StateId : state['id']}
})
}).then(function(zoneResult) {
console.log("zones result: " + JSON.stringify(zoneResult));
callback(null, zoneResult);
});
}
}, function(err, results) {
if (err) { return next(err); }
console.log("Results in callback: " + JSON.stringify(results));
res.send(results)
}
);