Browse Source

Added a utility to batch values.

Eugene Lazutkin 3 năm trước cách đây
mục cha
commit
c03d791ef7
1 tập tin đã thay đổi với 22 bổ sung0 xóa
  1. 22 0
      src/utils/batch.js

+ 22 - 0
src/utils/batch.js

@@ -0,0 +1,22 @@
+'use strict';
+
+const {none, flushable} = require('../defs');
+
+const batch = (n = 100) => {
+  let buffer = [];
+  return flushable(value => {
+    if (value === none) {
+      // clean up buffer
+      const result = buffer;
+      buffer = null;
+      return result;
+    }
+    buffer.push(value);
+    if (buffer.length < n) return none;
+    const result = buffer;
+    buffer = [];
+    return result;
+  });
+};
+
+module.exports = batch;