下面的代码是用nodejs和mongodb编写的。我正在尝试在控制台中打印temp_child_array值,我得到空白数组。任何人都可以告诉我如何将获取数据传递给父级。
let pr = new Promise(function(resolve, reject) {
MasterCodesModel
.getData(key)
.then(data => {
let temp_child_array = [];
let process_child = (key) => {
MasterCodesModel
.getData(key)
.then(data => {
temp_child_array.push(data);
})
}
process_child(key)
console.log("TEMP_CHILD_ARRAY: ", temp_child_array)// Its Empty
});
});
你的内部process_child
函数有一个异步mongoDB任务(MasterCodesModel.getData(key).then(...)
(,当你调用console.log
时,该任务还没有完成(被拒绝或解决(。所以结果还没有,temp_child_array
会有它的初始值:[]
.
你应该将process_child
函数写成一个承诺,当它被解决时,你的temp_child_array
与你的值一起可用。