Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何记录数组中所有异步函数的结果_Javascript - Fatal编程技术网

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

Javascript 如何记录数组中所有异步函数的结果,javascript,Javascript,我有以下代码: $(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) {

我有以下代码:

$(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])
时,我得到
未定义的

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


注意:
异步
功能将为10或更多!我需要将结果推送到数组中,并在需要时使用它

您需要返回带有要访问的解析值的承诺。 这比你现在做的要简单

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

因此,您的代码应该如下所示:

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

你理解异步的含义吗?在进行异步调用之后会发生什么?可能的重复,以及当我将有多个异步函数时需要做什么。我需要将所有函数的结果添加到arrayCheck
Promise.all