function* asyncDataFlow() {
try {
yield new Promise((resolve) => {
setTimeout(() => {
// 模拟获取用户信息成功
console.log('获取用户信息成功');
resolve({ user: 'userInfo' });
}, 1000);
});
yield new Promise((resolve) => {
setTimeout(() => {
// 模拟获取用户订单成功
console.log('获取用户订单成功');
resolve({ order: 'orderInfo' });
}, 1000);
});
yield new Promise((resolve) => {
setTimeout(() => {
// 模拟获取订单详情成功
console.log('获取订单详情成功');
resolve({ orderDetail: 'orderDetailInfo' });
}, 1000);
});
} catch (error) {
console.error('发生错误:', error);
}
}
const gen = asyncDataFlow();
let result = gen.next();
while (!result.done) {
result.value.then(data => {
console.log('获取的数据:', data);
result = gen.next();
}).catch(error => {
console.error('发生错误:', error);
result = gen.throw(error);
});
}