1. ホーム
  2. typescript

[解決済み] Promise.all()をTypescriptで使用する方法

2023-06-06 08:32:10

質問

以下は、私がやりたいことです。

Promise.all([aurelia.start(), entityManagerProvider.initialize()])
    .then((results:Array<any>) => {
        let aurelia: any = results[0];
        aurelia.setRoot();
    });

aurelia.start() はオーレリア型を返します。 initialize() はvoidを返します。

コンパイラは、使用法から型を推測できないというエラーメッセージを出します。

私が実現しようとしているのは、どちらも非常に長い処理なので、それらを同時に実行させ、次に Aurelia.setRoot();

どのように解決するのですか?

一般的に、配列は一貫した型を持っていることが望ましいとされています。しかし、あなたは以下のことを手動で行うことができます(一般的な引数を渡します)。

Promise.all<Aurelia, void>(
  [aurelia.start(), entityManagerProvider.initialize()
])
.then(results => {
    let aurelia = results[0];
    aurelia.setRoot();
});