हाँ, आप यह कर सकते हैं।
app.get('/', function (req, res) {
scaffold().then(function() {
res.send('done');
});
});
हम promise-queue इस्तेमाल करेंगे चीजों को आसान बनाने के लिए: शायद अपने वर्तमान कोड कुछ इस तरह (मैं तुम्हें वादों का उपयोग कर रहे संभालने हूँ) लग रहा है। सबसे पहले हमें एक कतार बनाने की आवश्यकता है:
var queue = new Queue(1);
तर्क यह है कि कतार एक साथ चलने वाली वस्तुओं की संख्या है। चूंकि आप कोई सहमति नहीं चाहते हैं, हम 1
का उपयोग करते हैं। अब, हम एक वादा चल के बजाय एक वादा कारखाने में पारित करने के लिए की जरूरत है:
app.get('/', function (req, res) {
queue.add(function() {
return scaffold().then(function() {
res.send('done');
});
});
});
हम सिर्फ एक वादा में पारित कर दिया है, यह तुरंत शुरू होगा। यही कारण है कि हमें एक ऐसे कार्य में क्यों जाना होगा जो वादा वापस कर देता है।
यदि आप तुरंत अनुरोध का जवाब देना चाहते हैं और कार्य समाप्त होने की प्रतीक्षा नहीं करते हैं, तो आप इसे वादे फैक्ट्री के बाहर ले जा सकते हैं। यह हमें अतिरिक्त अज्ञात फ़ंक्शन से बचने की अनुमति देता है क्योंकि अब scaffold
वादा कारखाना है जिसे हम कतार बनाना चाहते हैं।
app.get('/', function (req, res) {
queue.add(scaffold);
res.send('done');
});
स्रोत
2015-08-15 20:29:22
क्या यह एप्लिकेशन 'क्लस्टर' या एक प्रक्रिया है? क्या आप 'async' शैली या वादे का उपयोग करके एक उत्तर पसंद करेंगे? –
@AaronDufour मैं इसे एक प्रक्रिया के रूप में चलाने के लिए पसंद करूंगा। – leaksterrr