异步箭头函数的语法

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

async function foo() {// Do something}

箭头函数的等效语法是什么?

564468 次浏览

Async箭头函数看起来像这样:

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

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

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

Async箭头函数看起来像多个参数传递给它:

const foo = async (evt, callback) => {// do something with evt// return response with callback}

匿名表单也可以:

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

一个async函数声明看起来像这样:

async function foo() {// do something}

回调中使用async函数:

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

中使用异步方法

async foo() {// do something}

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

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

(请注意,这并不严格等同于async function foo() { }。除了function关键字和箭头表达式之间的差异之外,这个答案中的函数不是"悬挂到顶部")。

你也可以这样做:

 YourAsyncFunctionName = async (value) => {
/* Code goes here */
}

立即调用异步箭头函数:

(async () => {console.log(await asyncFunction());})();

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

(async function () {console.log(await asyncFunction());})();

带有参数的Async Arrow函数语法

const myFunction = async (a, b, c) => {// Code here}

基本示例

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

我的异步函数

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);});}
async function foo() {// do something}

相当于:

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

使用一个参数调用foo,如以下示例所示:

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

等价于像这样调用foo(两种方式都可以接受,因为括号是可选的,但当只提供一个参数时不需要)

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

如果你用两个或多个参数调用foo

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

等价于:(现在需要括号)

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

举一个实际的例子,里面有等待使用:

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

最简单的方法

   const MyFunction = async ()=>{// do something here}

对于静态异步箭头函数,它的工作方式如下:

static myFunction = async () => {// your code here}
const asynchronousFunction = async () => {// do something;// await something else;}