我有一个temp
以太坊地址数组。我想用一个返回promise的函数(web3方法)Map这个数组。在Promise.all
之后,promise仍然是pending。我不知道为什么。
下面是我的相关代码:
var prom = temp.map(x => [x, self.getBalance(x)]);
Promise.all(prom).then(function(results) {
console.log(results)
});
getBalance(t){
return this.contract.methods.balanceOf(t).call().then(function (result) {
return result / Math.pow(10, 18);
}).catch(function(e) {
console.log('error: '+e);
});
}
结果:
[ [ '0x92c9F71fBc532BefBA6dA4278dF37CC3A81c1fAD',
Promise { <pending> } ],
[ '0x910a2b76F4979FeBB4b589fA8D55e6866f4e565D',
Promise { <pending> } ] ]
2条答案
按热度按时间ki0zmccv1#
如果你想在返回的结果中包含
x
,只需在第一个promise中添加一个then()
并包含它:erhoui1w2#
你在map中返回一个数组的数组,而不是一个promise的数组,它应该是:
或者使用
async/await