このような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
か?