Вот еще один пример той же функциональности: spex.batch а>
исходный код было бы слишком много для повторного использования. -публикуйте здесь, так что вот только пример из пакетной обработки о том, как его использовать:
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' ]
Это просто для упрощения быстрого доступа к списку возникших ошибок.
person
vitaly-t
schedule
15.10.2015