async和await
发布日期:2021-05-09 14:41:07 浏览次数:20 分类:精选文章

本文共 1183 字,大约阅读时间需要 3 分钟。

ES8新特性

async和await

async和await两种语法结合可以让异步代码像同步代码一样执行,极大地简化了处理非线性操作(如网络请求)的代码复杂度。

1. async函数

async函数是一个特殊的函数,它返回一个Promise对象。该Promise对象的结果由async函数执行的返回值决定。如果函数没有返回任何值,返回的Promise将是未定型的(pending)。如果函数抛出一个错误,返回的Promise将是失败的(rejected),否则返回的Promise将与函数返回的值相关联(如果返回的是一个Promise,结果将由该Promise决定;如果返回的是一个非Promise值,结果将直接为该值)。

2. await表达式

await是一个操作符,它只能出现在async函数内部。它用于等待一个Promise对象完成执行。如果等待的对象是一个Promise,await将返回该Promise成功的值;如果等待的对象不是一个Promise,await将直接返回该值。需要注意的是,await不能在普通函数中使用,必须在async函数中。同时,使用await时需要考虑错误处理,通常使用try...catch语句捕获可能发生的错误。如果等待的Promise失败了,await会抛出一个错误,这个错误可以被try...catch捕获处理。

async function test() {  
try {
const result = await fn2();
console.log('结果', result);
} catch (error) {
console.error('错误', error);
}
}
test();

以下示例展示了如何使用async和await结合读取文件或发送网络请求:

async function main() {  
try {
const response = await fetch('http://example.com');
const data = await response.json();
console.log('获取到的数据', data);
} catch (error) {
console.error('请求失败', error);
}
}
main();

3. async和await的实际应用

async和await的结合使得代码更加简洁易读。例如,在处理网络请求时,可以避免复杂的回调链,而是通过await直接处理Promise结果。这种方式不仅提高了代码的可读性,也减少了错误处理的复杂性。

上一篇:canvas炫彩小球爱心(博客园鼠标点击)
下一篇:一文上手Python3

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月11日 09时22分32秒