TGViewer
JavaScript JavaScript @javascript · 31.1K subscribers
Post #3171 2.62K
CHALLENGE

async function* paginate(items, pageSize) {
for (let i = 0; i < items.length; i += pageSize) {
const page = items.slice(i, i + pageSize);
yield await Promise.resolve(page);
}
}

async function* transform(source, fn) {
for await (const chunk of source) {
yield fn(chunk);
}
}

async function run() {
const data = [10, 20, 30, 40, 50, 60];

const pages = paginate(data, 2);
const mapped = transform(pages, (page) => page.map((x) => x * 2));

const results = [];
for await (const page of mapped) {
results.push(page.reduce((a, b) => a + b, 0));
}

console.log(results);
}

run();
  • ❤ 3
  • 👍 3
  • 🔥 1
  • 🤔 1
More from @javascript
  1. Sep 23, 2026🤩 tinyjs: Build JavaScript Desktop Apps in <10MB I built an app with this and was impress…
  2. Sep 23, 2026Post #3513
  3. Sep 23, 2026CHALLENGE function* inner() { yield 1; yield 2; return 100; } function* outer() { const re…
  4. Sep 22, 2026Post #3511
  5. Sep 22, 2026CHALLENGE function Foo(x) { this.x = x; return { x: x * 2 }; } function Bar(x) { this.x =…
  6. Sep 21, 2026Post #3509
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →