我正在用两个不同的函数调用两个API。现在我想要第二个函数中的变量编号的值。 我认为这两个API不能同时执行,这就是为什么只有第一个API的最后一个值要打印的原因。 这是代码:
<script>
function getTrain(){
var apiCall=(First API is called with predefined source n destination)
$.getJson(apiCall,route);
function route(objectName1){
for(i=0;i<totalTrains;i++){
var number=objectName1.Train[i].Number;
var apiCall2=(Second API is called by passing the value of train number
from first API through loop)
$.getJson(apiCall2,avail);
function avail(objectName2){
var seat=objectName2.SeatStatus;
print("Train number: " + number + " Availability Status : " + seat);
}
}
}
}
</script>
现在作为此输出的打印,我的座位可用性状态对于所有火车编号都正确显示,但是火车编号的值始终显示第一个API的json代码的最后结果(显示之间的火车编号列表2个站)。
答案 0 :(得分:-1)
要使您的number
在第二个API调用的回调中可用,您可以使用closure:
var number = ...;
var apiCall2 = ...;
$.getJson(apiCall2, (result) => { avail(number, result); });
function avail(number, objectName2) {
...
}
number
的值将存储在$.getJson
的回调函数中,并将作为参数向下传递到avail
。