each.js 419 B

12345678910111213141516171819202122232425
  1. 'use strict';
  2. module.exports = function each(arr, cb, done) {
  3. if (arr.length === 0) {
  4. return done();
  5. }
  6. let remaining = arr.length;
  7. let err = null;
  8. for (const v of arr) {
  9. cb(v, function(_err) {
  10. if (err != null) {
  11. return;
  12. }
  13. if (_err != null) {
  14. err = _err;
  15. return done(err);
  16. }
  17. if (--remaining <= 0) {
  18. return done();
  19. }
  20. });
  21. }
  22. };