Используя yield
, вы «разбиваете» функцию на несколько частей, которые могут выполняться отдельно (но только по порядку):
function* help(){
// part 1starts
//....
const aa = yield 'no_help'; // part 1 ends
// part 2 starts
// ...
return aa; // part 2 ends
}
Если вы звоните a.next()
, часть 1 выполняется до тех пор, пока yield
и промежуточный результат 'no_help'
не будет возвращен вызову. Затем вы вызываете a.next('your helping hand')
, который выполнит часть 2, и вы получите обратно то, что возвращает функция. Поскольку нет третьей части, вызов a.next()
снова не будет работать.