Перепишите пример асинхронных итераций [закрыто]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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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