MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

कैसे सुनिश्चित करने के लिए एक एसिंक्रोनस कॉल नेवला में एक समारोह से लौटने से पहले निष्पादित किया जाता है?

आपको अभी भी async . का उपयोग करना चाहिए लेकिन आपको async.waterfall need चाहिए उस के लिए। यहां आपको विचार करने की आवश्यकता है:

अपने async . को कॉल करने का एक मुख्य तरीका समारोह:

var getInformation = function(){
  async.waterfall([
    //Array of your functions in order, we will be back here later
  ], function (err) {
       if(err){
         console.log(err);
       }else{
         console.log('Everything OK!');
     }
  );
}

फिर आपको अपने कार्यों को async . होना चाहिए अनुकूल, इसका मतलब है कि आपको कॉलबैक का उपयोग करना चाहिए और अपना डेटा एक फ़ंक्शन से दूसरे फ़ंक्शन में देना चाहिए। कुछ इस तरह:

function findUser(callback){
  //Do something
  if('Everything OK'){
    callback(err, yourData); //err should be null if everything is OK and yourData should be the data that you wanna use in your next function. e.g. schoolId 
  }else{
    callback(err); //Something was wrong, "err" should have something different to null
  }
}

function findSchool(callback, schoolId){ //Note that we receive the parameter schoolId here but not in the first function
  //Do something
  if('Everything OK'){
    callback(err, yourData); //err should be null if everything is OK and yourData should be the data that you wanna use in your next function. e.g. schoolName 
  }else{
    callback(err); //Something was wrong, "err" should have something different to null
  }
}

function findStudents(callback, schoolName){
  //Do something
  if('Everything OK'){
    callback(err); //err should be null if everything is OK if this is the last function maybe we don't need to send back more data from here 
  }else{
    callback(err); //Something was wrong, "err" should have something different to null
  }
}

फिर आपको अपने कार्यों को अपनी मुख्य विधि में कॉल करना चाहिए:

var getInformation = function(){
  async.waterfall([
    findUser,
    findSchool,
    findStudents
    //Note that there is no need to tell the functions the parameters they are sending or receiving here
  ], function (err) {
       if(err){
         console.log(err);
       }else{
         console.log('Everything OK!');
     }
  );
}

और बस इतना ही, आपके पास 3 कार्य हैं जिन्हें एक के बाद एक निष्पादित किया जाना चाहिए और कॉलबैक नरक की आवश्यकता नहीं है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ubuntu 18.04 पर MongoDB कैसे स्थापित करें

  2. क्या आपके पास MongoDB में संग्रह स्तर की अनुमति हो सकती है?

  3. एक ही दस्तावेज़ के विभिन्न भागों पर काम कर रहे स्थितीय $?

  4. Mongodb, $lookup . के साथ कुल क्वेरी

  5. हम एक्सप्रेस/नोडज में अनुरोध प्राथमिकता को कैसे संभालते हैं?