async/await方法在Typescript中的实现

Igor Web服务器评论4,389字数 995阅读3分19秒阅读模式

async/await方法是ES6新增的方法,自然在Typescript也是可以用的。

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

文章末尾固定信息

weinxin
我的微信
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
 
Igor
  • 本文由 Igor 发表于 2023-01-2417:30:02
开源社区

flutter、rn、uni-app比较

前言 每当我们评估新技术时要问的第一个问题就是“它会给我们的业务和客户带来哪些价值?”,工程师们很容易对闪闪发光的新事物着迷,却经常会忽略这些新事物其实可能对我们的客户没有任何好处,反而只会让现有的工...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证