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();


Ответы (0 шт):