如何获取变量的值(在function1中声明)到function2(在function1中声明)?

时间:2019-06-21 18:58:14

标签: javascript function

我正在用两个不同的函数调用两个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个站)。

1 个答案:

答案 0 :(得分:-1)

要使您的number在第二个API调用的回调中可用,您可以使用closure

var number = ...;
var apiCall2 = ...;
$.getJson(apiCall2, (result) => { avail(number, result); });

function avail(number, objectName2) {
  ...
}

number的值将存储在$.getJson的回调函数中,并将作为参数向下传递到avail