我可以使用async
关键字将javascript函数标记为“async”(即返回一个承诺)。像这样:
async function foo() {
// do something
}
箭头功能的等效语法是什么?
答案 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');