异步箭头功能的语法

时间:2017-03-22 22:50:39

标签: javascript promise async-await arrow-functions

我可以使用async关键字将javascript函数标记为“async”(即返回一个承诺)。像这样:

async function foo() {
  // do something
}

箭头功能的等效语法是什么?

8 个答案:

答案 0 :(得分:512)

异步箭头功能如下所示:

const foo = async () => {
  // do something
}

异步箭头函数对于传递给它的单个参数看起来像这样:

const foo = async evt => {
  // do something with evt
}

匿名表单也适用:

const foo = async function() {
  // do something
}

异步功能声明如下所示:

async function foo() {
  // do something
}

回调中使用异步功能:

const foo = event.onCall(async () => {
  // do something
})

答案 1 :(得分:99)

这是将异步箭头函数表达式分配给命名变量的最简单方法:

const foo = async () => {
  // do something
}

钽哒!

(请注意,这并不完全等同于async function foo() { }。除了the differences between the function keyword and an arrow expression之外,此答案中的函数不是"hoisted to the top"。)

答案 2 :(得分:15)

立即调用异步箭头功能:

override def apply

立即调用异步函数表达式:

IncludeFromJar

答案 3 :(得分:12)

你也可以这样做:

 YourAsyncFunctionName = async (value) => {

    /* Code goes here */

}

答案 4 :(得分:3)

我的异步功能

const getAllRedis = async (key) => {
  let obj = [];

  await client.hgetall(key, (err, object) => {
    console.log(object);
    _.map(object, (ob)=>{
      obj.push(JSON.parse(ob));
    })
    return obj;
    // res.send(obj);
});
}

答案 5 :(得分:2)

带有参数的异步箭头函数语法

const MyFunction = async (a,b,c) => {
  //code here
}

答案 6 :(得分:0)

基本示例

folder = async () => {
    let fold = await getFold();
    //await localStorage.save('folder');
    return fold;
  };

答案 7 :(得分:0)

async function foo() {
  // do something
}

相当于:

const foo = async () => {
   // do something
}

如果你用一个参数调用 foo,如下例所示:

async function foo(arg1) {
  // do something
}

相当于:

const foo = async arg1 => {
  // do something with evt
}

如果您使用两个或更多参数调用 foo,如下例所示:

async function foo(arg1, arg2) {
  // do something
}

相当于:

 const foo = async (arg1, arg2) => {
    // do something
 }

对于内部使用 await 的实际示例:

const foo = async () => await Promise.resolve('done');