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