[英]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.