美文网首页
ES7新增属性——async函数

ES7新增属性——async函数

作者: Gopal | 来源:发表于2017-11-18 09:05 被阅读70次

async函数是什么?
只要函数名之前加上async关键字,就表明该函数内部有异步操作。该异步操作应该返回一个promise对象,前面使用await就会先返回,等到触发的异步操作完成,再接着执行函数体后面是语句

async function getStockPrice(symbol, currency) {
    let price = await getStockPrice(symbol);
    return convert(price, currency);
}

上面代码是一个获取股票报价的函数,函数前面的async关键字,表明该函数将返回一个Promise对象。调用该函数时,当遇到await关键字,立即返回它后面的表达式(getStockPrice函数)产生的Promise对象,不再执行函数体内后面的语句。等到getStockPrice完成,再自动回到函数体内,执行剩下的语句。

async函数有什么用
async函数是用来取代回调函数的另一种方法。

async函数怎么使用
看例子:

function timeout(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

async function asyncValue(value) {
  await timeout(50);
  return value;
}

上面代码中,asyncValue函数前面有async关键字,表明函数体内有异步操作。执行的时候,遇到await语句就会先返回,等到timeout函数执行完毕,再返回value。

async函数并不属于ES6,而是被列入了ES7,但是traceur编译器已经实现了这个功能。

相关文章

  • ES7新增属性——async函数

    async函数是什么?只要函数名之前加上async关键字,就表明该函数内部有异步操作。该异步操作应该返回一个pro...

  • JS async和await关键字

    async是es7新增的关键字,用于定义异步函数。通过async定义的函数返回一个Promise对象,可以通过.t...

  • async/await

    async 函数 ES7 标准引入了 async 函数,使得异步操作变得更加方便。 它是 Generator 函数...

  • promise generator async

    async: async函数是Generator函数的语法糖,是ES7实现的标准,将Generator的星号换成a...

  • 第十八章 async函数

    含义   ES7标准引入了async函数,使得异步操作变得更加方便。async是Generator函数的语法糖。 ...

  • Async-await

    ES7 -async 函数 -await 操作符:必须在async 函数中才能使用 第1秒后打印「...

  • JavaScript异步加载的3种方式

    方案一、