Перепишите пример асинхронных итераций [закрыто]Javascript

Форум по Javascript
Anonymous
Перепишите пример асинхронных итераций [закрыто]

Сообщение Anonymous »

Я пытаюсь понять асинхронные итерации JavaScript, изучая главу javascript.info.
Теперь я хотел переписать этот пример кода, в котором [Symbol.asyncIterator]() просто устанавливает значение this.current, а затем возвращает его. Я хочу иметь определение функции async next непосредственно в объекте range.
Моя текущая попытка заключается в следующем, но на самом деле она не делает того, что предполагалось. Он должен подождать одну секунду, выводит 1. Затем ждет еще секунду, выводит 2. И так далее (до 5).

Код: Выделить всё

let range = {
from: 1,
to: 5,

[Symbol.asyncIterator]() {
this.current = this.from
return this
},

next() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve(this), 1000)
});
promise.then(
function(result) {
if (result.current  {
for await (let step of range) {
console.log(step)
}
})()
Это дает мне

Код: Выделить всё

file:///test.mjs:29
for await (let step of range) {
^

TypeError: Iterator result undefined is not an object
Будем благодарны за любые объяснения и предложения!

Подробнее здесь: https://stackoverflow.com/questions/798 ... es-example

Вернуться в «Javascript»