Async/await不是阻塞的。Async/await是ES7中引入的一种异步编程方式,它的作用是简化Promise的使用。Async/await可以让代码看起来像同步的,但实际上是非阻塞的异步执行。
与Promise不同的是,Async/await可以使用try/catch语句来捕获错误,而Promise只能使用.catch()方法。
下面是一个使用Async/await和Promise的代码示例:
// 使用Promise
function getResultWithPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise Result');
}, 1000);
});
}
getResultWithPromise()
.then(result => console.log(result))
.catch(error => console.error(error));
// 使用Async/await
async function getResultWithAsync() {
try {
const result = await getResultWithPromise();
console.log(result);
} catch (error) {
console.error(error);
}
}
getResultWithAsync();