यहाँ ही कार्यक्षमता में एक और ले रहा है: spex.batch
source code फिर से पोस्ट करने के लिए यहाँ बहुत ज्यादा होगा, इसलिए यह इस प्रकार का उपयोग करने के batch processing से सिर्फ एक उदाहरण है:
var spex = require('spex')(Promise);
// function that returns a promise;
function getWord() {
return Promise.resolve("World");
}
// function that returns a value;
function getExcl() {
return '!';
}
// function that returns another function;
function nested() {
return getExcl;
}
var values = [
123,
"Hello",
getWord,
Promise.resolve(nested)
];
spex.batch(values)
.then(function (data) {
console.log("DATA:", data);
}, function (reason) {
console.log("REASON:", reason);
});
यह आउटपुट:
DATA: [ 123, 'Hello', 'World', '!' ]
अब यह यह करने के लिए getWord
बदलकर असफल बनाते हैं:
function getWord() {
return Promise.reject("World");
}
अब उत्पादन होता है:
REASON: [ { success: true, result: 123 },
{ success: true, result: 'Hello' },
{ success: false, result: 'World' },
{ success: true, result: '!' } ]
यानी पूरे सरणी बसे है, रिपोर्टिंग सूचकांक बाध्य परिणाम।
और अगर बजाय पूरे कारण है कि हम फोन getErrors()
रिपोर्टिंग की:
console.log("REASON:", reason.getErrors());
तो उत्पादन होगा:
REASON: [ 'World' ]
यह हुआ त्रुटियों की सूची के लिए त्वरित पहुँच आसान बनाने के लिए सिर्फ है ।
अच्छा, हालांकि अभी के लिए मैं क्यू का उपयोग करना चाहता हूं (जो शायद वही कर रहा है)। – Zlatko
आपके चरण 4 के संबंध में, मैं कभी भी नए वादे को अस्वीकार करने के बारे में कैसे जानूंगा? –
@ टोरज़ाबूरो आप सही हैं, आप कभी अस्वीकार नहीं करेंगे, यह सब कुछ है :) शायद कुछ टाइमआउट, लेकिन यह एक अलग उपयोग केस है और यह नहीं दर्शाता कि q.allSettled क्या करता है। – Zlatko