Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / @mrmlnc / readdir-enhanced / lib / async / for-each.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/@mrmlnc/readdir-enhanced/lib/async/for-each.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/@mrmlnc/readdir-enhanced/lib/async/for-each.js
new file mode 100644 (file)
index 0000000..1ac9b2f
--- /dev/null
@@ -0,0 +1,29 @@
+'use strict';
+
+module.exports = asyncForEach;
+
+/**
+ * Simultaneously processes all items in the given array.
+ *
+ * @param {array} array - The array to iterate over
+ * @param {function} iterator - The function to call for each item in the array
+ * @param {function} done - The function to call when all iterators have completed
+ */
+function asyncForEach (array, iterator, done) {
+  if (array.length === 0) {
+    // NOTE: Normally a bad idea to mix sync and async, but it's safe here because
+    // of the way that this method is currently used by DirectoryReader.
+    done();
+    return;
+  }
+
+  // Simultaneously process all items in the array.
+  let pending = array.length;
+  array.forEach(item => {
+    iterator(item, () => {
+      if (--pending === 0) {
+        done();
+      }
+    });
+  });
+}