2016-02-27 30 views
5

में टाइपस्क्रिप्ट Async/वादे के साथ इंतजार कैसे करें टाइपस्क्रिप्ट async/प्रतीक्षा समारोह का उपयोग कैसे करें और नोड जेएस एफएस मॉड्यूल में टाइपस्क्रिप्ट डिफ़ॉल्ट वादे वापस करें और हल किए गए वादे पर अन्य फ़ंक्शन को कॉल करें। अब मुझे लगता है कि वहाँ कोई दूसरा रास्ता नहीं आवरण समारोह के साथ जाने के रूप में है के लिएनोड जेएस एफएस मॉड्यूल

if (value) { 
    tempValue = value; 
    fs.writeFile(FILE_TOKEN, value, WriteTokenFileResult); 
      } 

function WriteTokenFileResult(err: any, data: any) { 
     if (err) { 
      console.log(err); 
      return false; 
     } 
     TOKEN = tempValue; 
     ReadGist(); // other FS read File call 
    }; 

उत्तर

8

:

के बाद कोड है। कुछ इस तरह:

function WriteFile(fileName, data): Promise<void> 
{ 
    return new Promise<void>((resolve, reject) => 
    { 
     fs.writeFile(fileName, data, (err) => 
     { 
      if (err) 
      { 
       reject(err);  
      } 
      else 
      { 
       resolve(); 
      } 
     }); 
    });   
} 

async function Sample() 
{ 
    await WriteFile("someFile.txt", "someData"); 
    console.log("WriteFile is finished"); 
} 

कुछ लंबी चर्चा Node.js में वादों के बारे में यहाँ है: Every async function returns Promise

0

आप वादा खुद के रैपर आप async-file उपयोग कर सकते हैं लिखने के लिए नहीं करना चाहते हैं।

निम्नलिखित की तरह कुछ दिखाई दे सकता है यह आपके कोड का उपयोग करना ...

(async function() { 
    //... 
    await fs.writeFile(FILE_TOKEN, value); 
    var data = await fs.readFile('gist'); 
    // do something with your "gist" data here... 
})();