2017-10-22 3 views
-1

Es gibt ein Gegenstück für Promise.all warten auf alle Versprechen in Objekt. Beispielimplementierung: https://www.npmjs.com/package/promise-allTypescript typings for Promise.all Arbeiten mit Objekt

Verbrauch:

await promiseAll({ 
    key1: Promise.resolve(1), 
    key2: Promise.resolve(2) 
}); 

Ich wollte Typisierungen für eine solche Funktion schreiben. Ich habe versucht, keyof zu verwenden, aber nach einer Weile bemerkte ich, dass ich irgendwie eine Art von Versprechen "auspacken" müsste, was ich bezweifle, ist möglich.

Hier ist, was ich mit dem kam, ist eigentlich nur eine Identität Mapping jetzt: D

function promiseAll(o: object): { [P in keyof typeof o]: typeof o[P] } { 
... 
} 

Irgendwelche Ideen?

+0

Mögliche Duplikat von [Wie Promise.All mit Typoskript verwenden] (https://stackoverflow.com/questions/33684634/how-to-use-promise-all-with-typescript) –

+0

Es ist definitiv nicht ein Duplikat @DerekBrown –

Antwort

0

Hah, ich habe es herausgefunden!

type Promised<T> = { [P in keyof T]: PromiseLike<T[P]> }; 
function promiseAll<T>(o: Promised<T>): T { 
    ... 
}