async/await方法是ES6新增的方法,自然在Typescript也是可以用的。
加上async关键字的函数将会变成异步函数,意思就是xxx
给出一个实例:
async function hello(): Promise<string> { return "hello1"; } hello().then(value => { console.log(value); }).catch(err => { console.error(err); }); console.log('hello2');
这段代码跑出来的结果将会是:
hello2 hello1
上述代码可以看出async函数返回的是一个Promise对象,使用then方法添加回调函数然后可以输出值。但代码不是顺序执行的,而是先走的“hello2”然后再走“hello1”,原因是then方法这个回调函数需要TS进入相应事件后才会被执行,所以“hello2”会提前被输出出来。
而await关键字则需要和async关键字一起使用才能发挥作用,比如在一个异步函数体内,我们加入await关键字进行代码改修:
async function hello(): Promise<string> { return "hello1"; } async function main(): Promise<void> { try { const value = await hello(); console.log(value); } catch (err) { console.error(err); } console.log('hello2'); } main();
输出的结果将会变成如下形式:
hello1 hello2
await意思就是等待,异步函数体内等待await之前代码走完后再走后面的代码。
注意代码里改修的时候加入的try-catch语句,这是因为await命令后的Promise对象,运行会有rejected的情况出现,所以把await命令放在try-catch中。
————————————————
版权声明:本文为CSDN博主「月泪同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40258073/article/details/108887291
文章末尾固定信息

我的微信
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
评论