MST

星途 面试题库

面试题:JavaScript中如何创建一个简单的异步可迭代对象

请用JavaScript代码展示如何创建一个异步可迭代对象,该对象每次迭代返回一个递增的数字,并且迭代操作是异步的,例如通过`setTimeout`模拟异步操作。
47.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
const asyncIterableObject = {
    [Symbol.asyncIterator]() {
        let num = 1;
        return {
            async next() {
                return new Promise(resolve => {
                    setTimeout(() => {
                        if (num <= 10) { // 假设迭代10次,可以根据需要调整
                            resolve({ value: num++, done: false });
                        } else {
                            resolve({ value: undefined, done: true });
                        }
                    }, 1000); // 模拟异步操作,这里延迟1秒
                });
            }
        };
    }
};

// 使用示例
(async () => {
    for await (const value of asyncIterableObject) {
        console.log(value);
    }
})();