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

कैसे पाश के अंदर async कार्यों के पूरा होने के बाद समारोह कॉल करने के लिए?

मैं यहां ब्लूबर्ड वादों का उपयोग करता हूं। ध्यान दें कि कैसे कोड का आशय स्पष्ट है और कोई नेस्टिंग नहीं है।

सबसे पहले, hgetall कॉल और क्लाइंट का वादा करें -

var client = Promise.promisifyAll(client);

अब, वादों के साथ कोड लिखते हैं, .then .map . के साथ नोड कॉलबैक और एकत्रीकरण के बजाय . क्या .then संकेत है कि एक async ऑपरेशन पूरा हो गया है। .map चीजों की एक सरणी लेता है और उन सभी को आपके hgetall कॉल की तरह एक async ऑपरेशन में मैप करता है।

ध्यान दें कि ब्लूबर्ड एक Async . कैसे जोड़ता है (डिफ़ॉल्ट रूप से) वादा किए गए तरीकों का प्रत्यय।

exports.awesomeThings = function(req, res) {
    // make initial request, map the array - each element to a result
    return client.lrangeAsync("awesomeThings", 0, -1).map(function(awesomeThing) {
       return client.hgetallAsync("awesomething:" + awesomeThing);
    }).then(function(things){ // all results ready 
         console.log(things); // log them
         res.send(JSON.stringify(things)); // send them
         return things; // so you can use from outside
    });
};


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. phpRedis क्लस्टर में प्रवास और लगातार हैशिंग

  2. रेडिस सूचनाएं:समाप्ति पर कुंजी और मूल्य प्राप्त करें

  3. redis.conf को कैसे सेव और एग्जिट करें?

  4. रेल पर्यावरण लोड किए बिना रूबी रेस्क्यू

  5. स्क्रिप्ट ने वैश्विक चर बनाने का प्रयास किया