async function fetchData() {
// 模拟异步获取数据
return new Promise((resolve) => {
setTimeout(() => {
resolve([
{ id: 1, value: 'value1' },
{ id: 2, value: 'value2' },
{ id: 3, value: 'value3' }
]);
}, 1000);
});
}
async function printValues() {
const data = await fetchData();
const asyncIterator = data[Symbol.asyncIterator]();
let result;
while (!(result = await asyncIterator.next()).done) {
const { id, value } = result.value;
console.log(value);
if (id % 2 === 0) {
await new Promise(resolve => setTimeout(resolve, 3000));
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
printValues();