Προσπαθούσα να πληκτρολογήσετε 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
}));
}













