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