any.js 568 B

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