Ich habe versucht , eine Version der eintippen annoate reflectvon hier versprechen Methode - https://stackoverflow.com/a/31424853/1828637
function reflectPromise(p){
return p.then(data => ({
data,
resolved: true
}))
.catch(error => ({
error,
rejected: true
}));
}
Was sie tut, ist nimmt ein Versprechen, und gibt ein weiteres Versprechen, wenn es aufgelöst oder abgelehnt wird.
Die Dinge, die ich versuche, mit Pseudo-Code zu tun:
- Erklären , dass
dataisttypeof ResolveValue(p) - Erklären , dass
erroristtypeof RejectValue(p) - Erklären Sie, dass andere testen
const didReject = !!(await (reflectedPromise(somePromise)).rejected(was dies für aufgelöste Versprechen tun wird, was zurückgibt{ data: xxx, resolved:true }) ist wiederumundefinedzutrue. Zur Zeit , als ich tun ,!!blah.rejectedsagt Typoskript mirProperty 'rejected' does not exist on type
Das ist, was ich habe, so weit:
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
}));
}













