【问题标题】:Typescript Dictionary with promises as values以承诺作为值的打字稿字典
【发布时间】:2022-01-27 07:19:43
【问题描述】:

有User 类型的对象数组。它们有一个我们需要重视的异步函数。我们如何将字典的值分配给 Promise,然后一次性解决它们?

const userToFooPromises: { [userId: number]: Promise<Foo[]> } = { }

字典中是否有与Promise.all(...) 等价的词?我们希望返回类型为{ [userId: number]: Foo[] }

【问题讨论】:

  • 像 bluebird 这样的 Promise 库有 helper methods 可以在这里工作,但否则,您需要将字典映射到数组。

标签: javascript typescript asynchronous async-await


【解决方案1】:

您可以将对象分成多个条目,对映射的值运行Promise.all,用解析的值重新分配值,然后重构对象。

const entries = Object.entries(userToFooPromises);
const resolved = await Promise.all(entries.map(o => o[1]));

entries.forEach(o => o[1] = resolved[1]);

Object.fromEntries(entries);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-10
    • 2018-12-19
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2018-02-04
    相关资源
    最近更新 更多