パスワードを忘れた? アカウント作成
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

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...