News for hackers. Stuff that matters.
Re:My Node.js is a bit Rusty by z3t4 on Friday September 08, 2023 @04:40AM (#37431114)
[delayed]
Re:My Node.js is a bit Rusty by gchq-7703 on Friday September 08, 2023 @06:29AM (#37431847)
I don't believe that's true. Consider this infinite generator:

    async function* infinite() {
      while (1) {
        yield 'example'
      }
    }

    (async function () {
      for await (const value of infinite()) {
        console.log(value)
      }
    })()
If the generator was consumed all at once, this would never print (because the generator is infinite). `for await... of` should only consume a single step of the stream / generator at a time. It's just syntactic sugar for the usual calls to .next() and etc. See the docs here[0]

[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

Re:My Node.js is a bit Rusty by matharmin on Friday September 08, 2023 @06:39AM (#37431917)
"for await" uses async iterators, which is pretty much the same thing as a stream - just way simpler to use.
Re:My Node.js is a bit Rusty by nightlyherb on Friday September 08, 2023 @07:17AM (#37432109)
N.B. Assuming `readLineStream` in that for await loop is node's readline object, the code is iterating over an asyncIterator[1] which works exactly as what you describe in your solution. (AsyncIterators have a next method that returns a Promise of the next item)

[1] https://nodejs.org/api/readline.html#rlsymbolasynciterator