繁体   English   中英

如何记录数组中所有异步函数的结果

[英]How can I record the results of all asynchronous functions in the array

我有这个代码:

$(document).ready(function(){
    var dsg =  new contract('1', '/json/dsgABI.json');
    console.log(dsg.data);
});
var contract = function(contractAddress, abiFile){
    var data = new Object();
    $.when(abi()).then(function(abi) {
        data.abi = abi;
    });
    function abi(){
        return $.getJSON(abiFile, function(abi){
            return abi;
        });
    }
    this.data = data;
}

但是当使用console.log(dsg.data.abi[0])我得到undefined

你能帮我写代码,让我在函数内部和外部调用数据数组,并且在数组中有函数的结果。

PS: async函数会10个以上! 我需要将结果推送到一个数组上,并在需要时使用它!

您需要返回一个包含您要访问的已解析值的承诺。 这比你做的要简单。

您调用执行异步请求并返回包含所获取数据的承诺的函数contract ,然后在解析时访问此数据。

所以你的代码应该是这样的:

$(document).ready(function(){
    contract('1', '/json/dsgABI.json').then(data => {
      console.log(data);
    });
});
function contract(contractAddress, abiFile){
    return $.getJSON(abiFile, abi => abi);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM