async await 使用总结

1、async 放在函数声明前面,成为 async function,异步函数;

eg 1:

function hello() { return "Hello" };
hello();

函数返回 "Hello"

如果我们将其变成异步函数呢?

async function hello() { return "Hello" };
hello();

你也可以创建一个异步函数表达式(参见 async function expression ),如下所示:

let hello = async function() { return "Hello" };
hello();

你可以使用箭头函数:

let hello = async () => { return "Hello" };

这些都基本上是一样的。

现在调用该函数会返回一个 promise。这是异步函数的特征之一 —— 它保证函数的返回值为 promise。

要实际使用promise完成时返回的值,我们可以使用.then()块,因为它返回的是 promise:

hello().then((value) => console.log(value))

甚至只是简写如

hello().then(console.log)

2、await 关键字自在异步函数里才起作用

它可以放在任何异步的,基于 promise 的函数之前。它会暂停代码在该行上,直到 promise 完成,然后返回结果值。在暂停的同时,其他正在等待执行的代码就有机会执行了。

async function hello() {
  return greeting = await Promise.resolve("Hello");
};

hello().then(alert);

去除了到处都是 .then() 代码块!

不需要附加 .then() 代码块到每个promise-based方法的结尾,你只需要在方法调用前添加 await 关键字,然后把结果赋给变量。await 关键字使JavaScript运行时暂停于此行,允许其他代码在此期间执行,直到异步函数调用返回其结果。一旦完成,您的代码将继续从下一行开始执行。

用更少的.then()块来封装代码,同时它看起来很像同步代码,所以它非常直观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值