1 | var _ = require('./_');
|
2 | var genIterator = require('./genIterator');
|
3 |
|
4 | module.exports = function (iterable) {
|
5 | var iter = genIterator(iterable);
|
6 |
|
7 | return new _.Promise(function (resolve, reject) {
|
8 | var countDown = 0
|
9 | , reasons = []
|
10 | , item;
|
11 |
|
12 | function onError (reason) {
|
13 | reasons.push(reason);
|
14 | if (!--countDown)
|
15 | reject(reasons);
|
16 | }
|
17 |
|
18 | while (!(item = iter.next()).done) {
|
19 | countDown++;
|
20 | _.Promise.resolve(item.value).then(resolve, onError);
|
21 | }
|
22 | });
|
23 | };
|