Stavo cercando di digitare annoate una versione del reflectmetodo di promessa da qui - https://stackoverflow.com/a/31424853/1828637
function reflectPromise(p){
return p.then(data => ({
data,
resolved: true
}))
.catch(error => ({
error,
rejected: true
}));
}
Ciò che fa è prende una promessa, e restituisce un'altra promessa quando viene risolto o rifiutato.
Le cose che sto cercando di fare con pseudocodice:
- Dichiara che
dataètypeof ResolveValue(p) - Dichiara che
errorètypeof RejectValue(p) - Dichiarano che gli altri possano testare
const didReject = !!(await (reflectedPromise(somePromise)).rejected(ciò che questo farà per promesse risolti, che restituisce{ data: xxx, resolved:true }) è girareundefinedatrue. Attualmente quando faccio!!blah.rejecteddattiloscritto mi dice:Property 'rejected' does not exist on type
Questo è quello che ho finora:
function reflectPromise(p: Promise<any>): Promise<
{ data: any, resolved: boolean, rejected: void } |
{ error: any, resolved: void, rejected: boolean }
> {
return p.then(data: any) => ({
data,
resolved: true
}))
.catch((error: any) => ({
error,
rejected: true
}));
}













