【发布时间】:2019-08-07 02:49:48
【问题描述】:
Promise.all() 获取一个可迭代作为输入,promise.all 是否有可能具有不同的解析类型?
例如 promise.all([promiseA, promiseB, promiseC], promiseA 和 promiseB 返回 void 但 promiseC 返回布尔值?
我试过了,这似乎是不可能的,我也不认为一个可迭代的可以有不同的类型,但想确定一下。这是我看到的错误,这是我的 TypeScript 代码
PromiseC: Promise<boolean>;
PromiseA: Promise<void>;
PromiseB: Promise<void>;
const promises = [this.promiseA, this.promiseB];
if (!flag) {
promises.push(this.promiseC);
}
Promise.all(promises).then(() => { // do something}
提前致谢
【问题讨论】:
-
你的意思是,不同的 resolve 类型?
-
是的,这是可能的。你到底尝试了什么?
-
结果可能完全不同。例如,使用 Promise.all 调用许多 api 方法是很常见的。在这种情况下,可迭代对象只是看起来像列表的东西。
-
returns void- 那是什么?
标签: javascript typescript promise iterable