Ich möchte mehrere Versprechen erstellen, und ich interessiere mich wirklich nicht für Rennen in diesem Code, solange alle Rückrufe durchgeführt werden. SoNode.js: Einzelne Variable, mehrere Versprechen
, ich habe eine Variable, die alle Daten enthält, sagen wir mal:
export interface IData {
data1: string[],
data2: string[],
data3: string[]
}
Die 3 sind unabhängig, und ich habe eine Datenabholer .. sagen wir:
function getData(id: string): Promise<IData> {
return new Promise((resolve, reject) => {
var data = new TableFetcher();
data.get(_id)
.then((result : IData) => {
resolve()
})
})
}
Jetzt, Ich möchte etwas wie:
function x(): Promise<IData> {
return new Promise((resolve,reject) => {
var data: IData = {
data1: getData('100'),
data2: getData('200'),
data3: getData('300')
}
resolve(data)
})
}
machen, wenn alle getData Versprechungen abgeschlossen sind.
Es muss nicht verketten, aber alle können separat ausgeführt werden, aber ich muss ein Array mit allen asynchronen Daten zurückgeben, nachdem sie fertig sind.
Wie kann ich das tun?
ah ... danke .. – Magician
sah ich 'provey.all' Konstrukt, aber ich kann dort' reject' nicht finden. Wie kann ich 'reject' an den Aufrufer von x() senden? – Magician
@Magician Wenn eine der Versprechen, die an Promise.all() übergeben wurden, abgelehnt wird, wird das resultierende Versprechen ebenfalls abgelehnt. – Thomas