Я пытался ввести annoate версию reflectметода обещания здесь - https://stackoverflow.com/a/31424853/1828637
function reflectPromise(p){
return p.then(data => ({
data,
resolved: true
}))
.catch(error => ({
error,
rejected: true
}));
}
Что она делает это берет обещание, и возвращает другое обещание, когда он разрешен или отвергнут.
То, что я пытаюсь сделать с псевдокодом:
- Заявляем , что
dataявляетсяtypeof ResolveValue(p) - Заявляем , что
errorявляетсяtypeof RejectValue(p) - Объявляет , что другие могут проверить
const didReject = !!(await (reflectedPromise(somePromise)).rejected(что это будет делать для решенных обещаний, который возвращает{ data: xxx, resolved:true }) в свою очередьundefinedкtrue. В настоящее время , когда я!!blah.rejectedмашинопись говорит мнеProperty 'rejected' does not exist on type
Это то, что я до сих пор:
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
}));
}













