JS中的异步async-await(秒懂异步编程模式)
// 使用async/await简化Promise链式调用
async function fetchUserData() {
try {
const userId = await getUserId();
const userDetails = await getUserDetails(userId);
console.log(userDetails);
} catch (error) {
console.error('An error occurred:', error);
}
}
// 模拟异步操作返回Promise
function getUserId() {
return new Promise((resolve) => {
setTimeout(() => resolve('user123'), 1000);
});
}
function getUserDetails(userId) {
return new Promise((resolve) => {
setTimeout(() => resolve({ userId, name: 'John Doe' }), 1000);
});
}
// 调用异步函数
fetchUserData();
这段代码展示了如何使用async/await
来简化Promise的链式调用。通过将Promise的then和catch方法替换为async/await语法,代码变得更加直观和易读。异步操作(例如获取用户ID和用户详情)是通过返回Promise来进行的,然后使用await
关键字来暂停执行,直至Promise解决。错误处理是通过在函数周围添加try/catch
块来实现的。
评论已关闭