मैं का एक संस्करण 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
}));
}













