Я прочитал несколько примеров кода с использованием генераторов JavaScript таких как этот. Простейший блок, использующий генератор, который я могу придумать, - это что-то вроде:
function read(path) {
return function (done) {
fs.readFile(path, "file", done);
}
}
co(function *() {
console.log( yield read("file") );
})();
Это действительно распечатывает содержимое file
, но мой зависает там, где вызывается done
. По-видимому, выход - это синтаксический сахар для упаковки того, что он возвращает в обратном вызове, и соответствующим образом присваивает значение результата (и, по крайней мере, в случае co
, вызывая аргумент ошибки для обратного вызова). Правильно ли я понимаю синтаксис?
Что выглядит done
при использовании yield
?