5

このようなJavaScript ジェネレーターを使用したコードの例をいくつか読みました。私が思いつく最も単純なジェネレーターを使用するブロックは、次のようなものです。

function read(path) {
    return function (done) {
        fs.readFile(path, "file", done);
    }
}

co(function *() {
    console.log( yield read("file") );
})();

これは確かに の内容を出力しますfileが、私のハングアップはdoneが呼び出された場所です。一見、yield は、返されるものをコールバックでラップし、結果の値を適切に割り当てるための構文糖衣です (少なくとも の場合はco、エラー引数をコールバックにスローします)。構文の理解は正しいですか?

を使用するとどのdoneように見えますyieldか?

4

2 に答える 2