パスワードを忘れた? アカウント作成
15648076 journal
日記

yuuka_maniaの日記: Javascript generator function とか、yield とか 1

日記 by yuuka_mania

なんとなくあるのはわかってたものの、見て見ぬふりをしてたが、簡単なサンプルを書いてみた。
意識すれば使い出もありそうだし、綺麗に書けるケースもあるだろうが、どうだろうなぁ。

% node
Welcome to Node.js v16.13.0.
Type ".help" for more information.
> function* gen(x, y) {
... yield 10;
... yield 20;
... return x * y;
... }
undefined
> x = gen(3, 4);
Object [Generator] {}
> x.next().value;
10
> x.next().value;
20
> x.next().value;
12
> x.next().value;
undefined

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年05月15日 4時50分 (#4249225)

    async/awaitが出る前はJavaScriptで関数の実行を中断・再開する仕組みとして大いに期待されてたんだろうけど、
    async/awaitが登場したから本来のジェネレータ用途以外での使いどころが壊滅して要らない子になっちゃった感。
    値を複数回に分けて返す処理の使いどころがなぁ……

    ああでもストリームとか逐次読みする奴はジェネレータでも表現できるかも?
    でもそれならジェネレータの中でawait使いたいよなぁ……
    あれか。yieldでプロミス返しゃ良いのか?
    だめだどうにもスッキリした用途に辿り着かねぇ……

typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...