Как данные могут быть предоставлены работающему генератору? - PullRequest
0 голосов
/ 20 июня 2019

Я хотел предоставить данные для запуска генератора.

Это всего лишь код JavaScript, и сам код может запускать любую консоль браузера.

function* getNumbers() {
  yield 1
  yield 5
  yield 10
}
// retrieving
const getThoseNumbers = getNumbers()
console.log(getThoseNumbers.set())
console.log(getThoseNumbers.update())

Я ожидаю следующих yield значений, таких как 5или 10. Но я получаю следующие сообщения об ошибках

  • TypeError: getThoseNumbers.set не является функцией

  • TypeError: getThoseNumbers.update не являетсяфункция

Ответы [ 2 ]

1 голос
/ 20 июня 2019

function* getNumbers() {
  yield 1
  yield 5
  yield 10
}
// retrieving
const getThoseNumbers = getNumbers()
// console.log(getThoseNumbers.set()) - Uncaught TypeError: getThoseNumbers.set is not a function
// console.log(getThoseNumbers.update()) - Uncaught TypeError: getThoseNumbers.update is not a function

// You should call `next()`
console.log(getThoseNumbers.next()) // 1
console.log(getThoseNumbers.next()) // 5
console.log(getThoseNumbers.next()) // 10

Вы должны позвонить next, и это способ получить следующий генератор.

0 голосов
/ 20 июня 2019

Итератор (например, тот, который вы создаете при вызове функции генератора) имеет одно свойство для получения следующего значения: next.next - это метод, который продолжает генератор до следующего выхода или возврата и возвращает любое значение, полученное или возвращенное в объекте.Возвращаемый объект имеет два свойства: value и done.done - это логическое значение, которое становится истинным после завершения работы генератора.

Обратите внимание, что ничего из этого не равно set или update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...