function是async
,使用它时,我在函数前面写了await
。
在我的代码中获取函数结果时,它在for循环中进行了处理。
它可以从函数中获取结果,但是转义循环不起作用。
函数的返回类型为Promise
,因此,当它返回resolved
时,将处理then
并返回重新赋值。但是,出乎我的意料
退出循环(退出)时无法得到结果。
let IDBFindingCarryingAddress = async(st, et)=>{
let CarryingAddrTx = [], CarryingAddr= [];
CarryingAddr = await SearchCarryingAddress(st, et);
if(CarryingAddr!=-1){
for(let i in CarryingAddr){
let addr = await CarryingAddressTx(CarryingAddr[i], et);
CarryingAddrTx.push(...addr);
}
console.log('CarryingAddrTx : '+CarryingAddrTx+' ');
for(let i in CarryingAddrTx){
await InsertCarryingAddress(CarryingAddrTx[i][0], CarryingAddrTx[i][1], CarryingAddrTx[i][2], CarryingAddrTx[i][3]);
}
}
}
问题是
for(let i in CarryingAddr){
let addr = await CarryingAddressTx(CarryingAddr[i], et);
CarryingAddrTx.push(...addr);
}
它在循环内工作 然后,
console.log('CarryingAddrTx : '+CarryingAddrTx+' ');
它不起作用。我对await CarryingAddressTx
function()表示怀疑。
await function
删除后,它可以工作。
所以,最初 我希望这样。
Output
-----------------------------------------
CarryingAddrTx : 0x_____________________,
CarryingAddrTx : 0x_____________________,
CarryingAddrTx : 0x_____________________,
...
但是,什么也不打印。
谢谢。