这里的问题是,您正在尝试
await兑现承诺而不是承诺。这没有达到您的期望。
当传递给的对象
await不是Promise时,
await只需立即按原样返回值,而不是尝试解析它。因此,由于您
await在此处传递了(Promise对象的)数组而不是Promise,所以await返回的值就是该数组,其类型为
Promise<number>[]。
您需要在此处调用
Promise.all返回的数组
map,以便在使用前将其转换为单个Promise
await。
根据MDN文档
Promise.all:
该
Promise.all(iterable)方法返回一个promise,当可迭代参数中的所有promise都已解决时,该promise会解决;或者以第一个传递的promise拒绝为由拒绝。
因此,在您的情况下:
var arr = [1, 2, 3, 4, 5];var results: number[] = await Promise.all(arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1;}));这将解决您在此处遇到的特定错误。



