[英]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.