JS как получить данные при вызове генератора с асинхронной функцией
Изучаю JS генераторы.
https://codepen.io/ulibka68/pen/wvapYpz
Внутри генератора стоит вызов асинхронной функции fetch. Пока результат выполнения fetch удается получить только в этой строке:
if (nextResult.done) { console.log('nextResult.value ',nextResult.value);
Подскажите пожалуйста правильный паттерн использования генератора с асинхронной функцией. В том смысле чтобы можно было вызвать callGenerator и получить данные от fetch
P.S. Я прекрасно знаю как пользоваться fetch - здесь она используется просто как пример асинхронной функции, возвращающей promise.
function* generatorCreator () {
const response = yield fetch('https://jsonplaceholder.typicode.com/posts/1');
const data = yield response.json();
// console.log(data);
return(data);
}
const callGenerator = () => {
const iterator = generatorCreator();
let cnt=1;
function next(value) {
console.log('cnt ',cnt++);
const nextResult = iterator.next(value);
if (nextResult.done) {
console.log('nextResult.value ',nextResult.value);
return nextResult.value;
} else {
nextResult.value.then(next);
}
return 'Я работаю';
};
let result = next();
console.log('result =>',result);
}
callGenerator();