,可能是由于异步调用的执行时间较长,导致在异步调用完成之前,程序继续执行后续的代码,而未等待异步调用的结果返回。这样就导致在异步调用完成后,函数外部定义的数组并未被填充。
为了解决这个问题,可以采用以下几种方法:
def async_call(callback):
# 异步调用的逻辑
result = ... # 异步调用的结果
callback(result) # 将结果传递给回调函数
def callback(result):
# 将结果填充到函数外部定义的数组中
array.append(result)
array = []
async_call(callback)
function asyncCall() {
return new Promise((resolve, reject) => {
// 异步调用的逻辑
let result = ...; // 异步调用的结果
resolve(result); // 将结果传递给Promise对象的resolve方法
});
}
let array = [];
asyncCall().then(result => {
// 将结果填充到函数外部定义的数组中
array.push(result);
});
async def async_call():
# 异步调用的逻辑
result = await ... # 等待异步调用的结果
return result
array = []
result = await async_call()
# 将结果填充到函数外部定义的数组中
array.append(result)
以上是解决在等待异步调用后未填充在函数外部定义的数组的几种常见方法。具体使用哪种方法取决于编程语言和框架的支持情况,以及个人的编程习惯和项目需求。
领取专属 10元无门槛券
手把手带您无忧上云