javascript - 为什么 Promise.all() 返回一个空数组?
问题描述
编辑:我在数组创建器中放置了一个console.log,就在它返回并且数组为空之前。我有一个类似的过程,可以创建一系列承诺并执行。关于为什么这个从 docuSignPromiseArrayCreator() 返回一个空数组的任何想法?
async function docuSignPromiseArrayCreator(res, conn, deal) {
console.log("Promise Array Creator Fired");
return new Promise((resolve, reject) => {
let array = [];
console.log(res);
res.forEach(async (res, index) => {
let attachments = await conn.sobject("Attachment").find({
ParentId: res.Id,
});
let iaPromise = DocuSignDecisionHandler(attachments, deal, conn);
array.push(iaPromise);
});
console.log(array);
resolve(array);
return;
});
}
这是以不同方式(几乎)执行相同操作并起作用的功能。
async function AttachmentPromiseHandler(res, conn) {
return new Promise(async (resolve, reject) => {
let attachmentArray = [];
await res.forEach(async (attachment) => {
let name = JSON.stringify(attachment.Name);
if (name.includes("LD") || name.includes("Line")) {
let ld = downloadPromiseHandler(attachment.Id, attachment.Name, conn);
attachmentArray.push(ld);
}
if (name.includes("Layout")) {
let layout = downloadPromiseHandler(
attachment.Id,
attachment.Name,
conn
);
attachmentArray.push(layout);
}
});
let attachments = await Promise.all(attachmentArray).catch((error) =>
reject(error)
);
resolve(attachments);
});
}
解决方案
推荐阅读
- flutter - Flutter: Wrap & Column for displaying multiple icons vertically
- firebase - Firebase NPM 包无法在 vue 3 上编译
- apache-spark - Spark Batch Avro 反序列化:格式错误的数据。长度为负
- c - 这里有什么问题(c程序)。它显示了太多参数的格式。对于所有“scanf”行
- netcdf - xarray DataArray 无法转换为 netcdf 文件
- sql - SSRS 未显示日期范围内的所有数据
- javascript - 无法从 eslint 读取属性“范围”的 null 创建反应应用缩进为 2
- r - 在 R 中的 wpct()(百分比加权表)的结果中包括零计数级别
- ios - 从垂直堆栈视图中删除视图
- php - 在 PHP 中调用 ajax 函数时如何获取页面 URL?