簡體   English   中英

異步箭頭的語法 function

[英]Syntax for an async arrow function

我可以使用async關鍵字將 JavaScript function 標記為“異步”(即返回承諾)。 像這樣:

async function foo() {
  // Do something
}

箭頭函數的等效語法是什么?

異步箭頭函數如下所示:

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

對於傳遞給它的單個參數,異步箭頭函數看起來像這樣:

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

對於傳遞給它的多個參數,異步箭頭函數看起來像這樣:

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

匿名表單也可以:

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

異步函數聲明如下所示:

async function foo() {
  // do something
}

回調中使用異步函數:

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

中使用異步方法

async foo() {
  // do something
}

這是將async箭頭函數表達式分配給命名變量的最簡單方法:

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

(請注意,這並不嚴格等同於async function foo() { } 。除了function關鍵字和箭頭表達式之間的區別之外,此答案中的函數不是“提升到頂部” 。)

立即調用異步箭頭函數:

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

立即調用異步函數表達式:

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

帶參數的異步箭頭函數語法

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

基本示例

folder = async () => {
    let fold = await getFold();
    //await localStorage.save('folder');
    return fold;
  };
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
 }

對於內部使用 await 的實際示例:

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

你也可以這樣做:

 YourAsyncFunctionName = async (value) => {

    /* Code goes here */

}

我的異步功能

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);
});
}

最簡單的方法

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

對於靜態異步箭頭函數,它的工作原理如下:

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

/ * foo =異步(props)=> {

/* Code goes here */

},請刪除這些評論* /

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM