1
我正在嘗試使用async
來向我的陣列收集一些附加數據。節點異步未運行異步
爲此,香港專業教育學院創建了以下:
User_has_academy_module.findAll({
include: [{model: Module, include: [Category, ModuleType]}],
where: {academy_team_id: team_id, user_id: user_id}
}).then(function (modules) {
var i = 0;
async.map(modules, function (module,moduleCallback) {
var act = Academy_Attempt.build();
if(module.dataValues.is_complete == 1){
act.findByUserTeamAndModule(module.dataValues.user_id, module.dataValues.academy_team_id, module.dataValues.module_id, function (result) {
module.dataValues.academy_attempt = result;
moduleCallback(null, module);
}, function (error) {
})
}
});
onSuccess(modules);
})
,你可以從上面看到我首先收集的陣列稱爲modules
,我需要遍歷每個這些modules
我想找到,如果產生額外的數據值稱爲is_complete == 1
一旦它找到一個值就應該設置module.dataValues.academy_attempt = result
一旦所有的模塊已經迭代應該調用回調( onSuccess
)並返回模塊。
但是它在異步調用之前運行onSuccess
。
所以我的問題是我做錯了什麼,如何解決它?
只需在'async.map'回調中調用'onSuccess(modules)'函數即可。 –