1
我正在构建与以太坊区块链连接的Dapps。我有一个调用内部异步方法的JavaScript函数。无法传递数组以查看异步方法
async function getFiles(id, array){
if(id < 2){
myContract.consultFile.call(id,"0x2b461Db580028F263351B969cFd8542db696787E",function(err, res){
array.push({title : res[0], description : res[1]});
getFiles(++id, array);
});
}
return array;
}
此第一种方法应该是异步吗?
然后我在我的帮手中有一个函数调用前一个函数。这是我得到的最接近的版本,但它返回一个承诺对象。
有了这个版本,我可以看到console.log()
[[PromiseValue]]是正确的。
但是,当我尝试在下面的代码中用{{#each files}}显示它时,没有任何事情发生,而如果我返回tmp,我可以看到[Object Promise]。 它阵列发送?我应该如何显示数组?
Template.myDocuments.helpers({
'files': function(){
var tmp = getFiles(0,[]);
tmp.then(function(val){
console.log(val);
return val;
});
}
});
这种回调和异步编程,我没有工作更有帮助......我已经设法通过直接把呼叫到onCreated()方法和什么时候做每次使用TemplateVar.set推入数组。 – glaulom