Javascript 用于循环顺序(具有异步功能)
我有以下代码: exports.formatDepArrTables=函数(jsonReturn、类型、地名、回调){ 让toSend=“”; 如果(类型==‘出发’){ for(设j=0;jJavascript 用于循环顺序(具有异步功能),javascript,node.js,loops,for-loop,request,Javascript,Node.js,Loops,For Loop,Request,我有以下代码: exports.formatDepArrTables=函数(jsonReturn、类型、地名、回调){ 让toSend=“”; 如果(类型==‘出发’){ for(设j=0;j
getDistributionFromDistributionId
是一种自定义方法,它在API上发出请求(带有'request'节点JS模块)
当然,我需要有getDisruptionFromDisruptionId
提供的信息来运行我的下一个循环
此代码部分的父函数返回一个回调,该回调需要在两个循环的末尾“填充”
有什么想法吗?
request
是异步函数,你需要在你的代码中添加async/wait或者使用递归request
是异步的,函数,你需要在代码中添加async/wait或者使用递归添加async/wait,现在已经很有魅力了!谢谢
exports.formatDepArrTables = function(jsonReturn, type, placeName, callback) {
let toSend = "";
if (type == 'departure') {
for (let j = 0; j < jsonReturn.departures.length; j++) {
console.log("DEPARTURES LOOP j = " + j + "/" + jsonReturn.departures.length);
if(currentDeparture.display_informations.links[0] === undefined) {
toSend += ""; // setting some string informations
}
else {
let oceTrainId = ""; // random number given by a json
_this.getDisruptionFromDisruptionId(oceTrainId, function(data) {
for(let i = 0; i < data.disruptions[0].impacted_objects[0].impacted_stops.length; i++) {
if(currentImpactedStop.stop_point.label == placeName) {
toSend += "string";
}
}
});
}
}
console.log("End of the first loop");
return callback(toSend);
} else if (type == 'arrival') {
// copy&paste
} else {
throw new Error("not defined");
}
};