मैं एसिंक-बसबॉय के लिए एसिंक फ़ंक्शन परिभाषा जोड़ने की कोशिश कर रहा हूं;
मैंने एक फ़ाइल "async-busboy.d.ts" बनाई है
declare module "async-busboy" {
export default async function asyncBusby
(subString: any): Promise<any>;
}
लेकिन यह मुझे त्रुटि देता है: "त्रुटि टीएस 1040:" async "संशोधक को परिवेश संदर्भ में उपयोग नहीं किया जा सकता है।"
मैं async फ़ंक्शन defs कैसे लिखूं?
धन्यवाद
संपादित करें आपके उत्तर के लिए @Titian Cernicova-Dragomir और @Aaron धन्यवाद। लेकिन जब मैं इसे बुलाता हूं तो मुझे एक त्रुटि मिलती है
const dddd = await asyncBusboy(22);
[ts] "await" expression is only allowed within an async function.
कोई सुझाव?
उत्तर:
उत्तर № 1 के लिए 1आपको बस इतना ही चाहिए:
declare module "async-busboy" {
export default function asyncBusby
(subString: any): Promise<any>;
}
तथ्य यह है कि यह एक देता है Promise
यह एसिंक बनाता है। उपभोक्ताओं की उम्मीद है await
the any
अब मान । को async
संशोधक के लिए समारोह शरीर कार्यांवयन बढ़ाने के लिए प्रयोग किया जाता है (क्या यह रिटर्न एक वादा में लिपटे हो जाता है), जो तुम डॉन "टी एक प्रकार-डीईएफ़, जो है क्यों async
isn "प्रकार-डीईएफ़ में अनुमति दी टी ।
जवाब के लिए 0 № 2
वहां के लिए कोई ज़रूरत नहीं है async
एक घोषणा में संशोधक । को async
संशोधक कंपाइलर का उपयोग सक्षम करने के लिए कोड का उत्सर्जन करने के लिए निर्देश await
. उपभोक्ता की दृष्टि से महत्वपूर्ण हिस्सा है कि यह एक रिटर्न Promise
नहीं कैसे async समारोह के शरीर में लागू किया जाता है ।आप विचार कर सकते हैं async
फ़ंक्शन का कार्यांवयन विवरण ।
आपकी समस्या एक कॉल साइट समस्या है, तो आपको उस फ़ंक्शन को चिह्नित करने की आवश्यकता है जिसमें आप कॉल करते है asyncBusby
होने के रूप में async
:
async function foo (){
const dddd = await asyncBusby(22);
console.log(dddd);
}