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

नोड/रेडिस और कॉलबैक के साथ नियंत्रण प्रवाह समस्या?

<ब्लॉकक्वॉट>

मुझे समझ नहीं आता क्यों client.smembers और client.get (रेडिस लुकअप) को केवल कथन होने के बजाय कॉलबैक होना चाहिए - यह जीवन को बहुत जटिल बना देता है।

नोड यही है। (मुझे पूरा यकीन है कि इस विषय पर यहां पर्याप्त से अधिक बार चर्चा की गई थी, अन्य प्रश्नों को देखें, यह निश्चित रूप से है)

<ब्लॉकक्वॉट>

मैं कैसे सुनिश्चित कर सकता हूं कि socket.broadcast . पर कॉल करने से पहले सभी लुकअप किए गए हैं ?

यही है err कॉलबैक फ़ंक्शन के लिए। यह थोड़े नोड का मानक है - कॉलबैक में पहला पैरामीटर त्रुटि वस्तु है (null अगर सब कुछ ठीक है)। तो बस कुछ इस तरह का उपयोग करें ताकि सुनिश्चित हो सके कि कोई त्रुटि नहीं हुई है:

if (err) {
  ...    // handle errors.
  return // or not, it depends.
}

... // process results
<ब्लॉकक्वॉट>

लेकिन यह बहुत गन्दा लगता है।

आपको इसकी आदत हो जाएगी। मुझे वास्तव में यह अच्छा लगता है, जब कोड अच्छी तरह से स्वरूपित होता है और परियोजना चतुराई से संरचित होती है।

अन्य तरीके हैं:

  • async कोड-प्रवाह (Async.js, Step.js, आदि) को नियंत्रित करने के लिए पुस्तकालयों का उपयोग करना
  • यदि स्पेगेटी-शैली कोड वह है जो आपको लगता है कि गड़बड़ है, तो परिणामों को संसाधित करने के लिए कुछ फ़ंक्शन को परिभाषित करें और उन्हें अनाम के बजाय पैरामीटर के रूप में पास करें।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस उप/पब और php/nodejs

  2. MacOS 10.12 . पर दो डॉकर कंटेनरों के बीच संचार

  3. रेडिस कुंजी नामकरण सम्मेलन?

  4. रेडिस सीरियलाइज़ेशन और डिसेरिएलाइज़ेशन

  5. Laravel - एक विशिष्ट स्ट्रिंग वाली सभी कैश / रेडिस कुंजियों को मिटा दें