我在Javascript中有3个功能。 function1将数据插入array-array_message',function2导出' array_message'进入csv文件。 function3将这两个函数与列表中的所有元素一起调用。
在Javascript中,function2与function1同时执行,这使得导出的文件始终为空,因为没有时间填写' array_message'。
当在这个'中完成function1时,任何人都可以帮助调用function2吗?环?也许另一个回调函数?
function function3(){
for (var i=0; i<list.length;i++){
console.log(list[i]);
function1(list[i])
function2(list[i]+'.csv',array_message)
}
}
答案 0 :(得分:2)
您可以利用Promises(首选IMO)或回调来完成此任务:
function function1(item) {
return new Promise(function(resolve, reject) {
// do operations
if (operationSuccessful) {
resolve(dataFromOperation);
} else {
reject(errorFromOperation);
}
});
}
function function3() {
for (var i=0; i<list.length;i++) {
// only call function2 after function1 is complete
function1(item[i]).then(function(responseData) {
function2(responseData);
}).catch(function(error) {
console.error("Problem in function1")
});
}
}