Bon*_*Oak 393 javascript promise async-await arrow-functions
我可以用async关键字将javascript函数标记为"async"(即返回一个promise).像这样:
async function foo() {
// do something
}
Run Code Online (Sandbox Code Playgroud)
箭头函数的等效语法是什么?
Bon*_*Oak 673
异步箭头函数如下所示:
const foo = async () => {
// do something
}
Run Code Online (Sandbox Code Playgroud)
该匿名形式的作品,以及:
const foo = async evt => {
// do something with evt
}
Run Code Online (Sandbox Code Playgroud)
异步函数声明如下所示:
const foo = async function() {
// do something
}
Run Code Online (Sandbox Code Playgroud)
在回调中使用异步函数:
async function foo() {
// do something
}
Run Code Online (Sandbox Code Playgroud)
小智 114
分配一个异步箭头功能最简单的方式表达一个名为变量:
const foo = async () => {
// do something
}
Run Code Online (Sandbox Code Playgroud)
当当!
(注意,这并不完全等同于async.除了关键字和箭头表达式之间的差异async function foo() { }外,此答案中的函数不会"被提升到顶部".)
Mih*_*ail 26
立即调用异步箭头功能:
(async () => {
console.log(await asyncFunction());
})();
Run Code Online (Sandbox Code Playgroud)
立即调用异步函数表达式:
(async function () {
console.log(await asyncFunction());
})();
Run Code Online (Sandbox Code Playgroud)
Ran*_*ner 25
async function foo() {
// do something
}
Run Code Online (Sandbox Code Playgroud)
相当于:
const foo = async () => {
// do something
}
Run Code Online (Sandbox Code Playgroud)
使用一个参数进行调用,foo如下例所示:
async function foo(arg1) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
相当于foo这样调用(两种方式都可以接受,因为括号是可选的,但在只提供一个参数时不是必需的)
const foo = async arg1 => {
// do something
}
const foo = async (arg1) => {
// do something
}
Run Code Online (Sandbox Code Playgroud)
如果您foo使用两个或多个参数进行调用
async function foo(arg1, arg2) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
相当于:(现在需要括号)
const foo = async (arg1, arg2) => {
// do something
}
Run Code Online (Sandbox Code Playgroud)
对于内部使用await 的实际示例:
const foo = async () => await Promise.resolve('done');
Run Code Online (Sandbox Code Playgroud)
Cha*_*sia 20
基本示例
folder = async () => {
let fold = await getFold();
//await localStorage.save('folder');
return fold;
};
Run Code Online (Sandbox Code Playgroud)
Jus*_*els 12
你也可以这样做:
YourAsyncFunctionName = async (value) => {
/* Code goes here */
}
Run Code Online (Sandbox Code Playgroud)
带参数的异步箭头函数语法
const myFunction = async (a, b, c) => {
// Code here
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我的异步功能
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);
});
}
Run Code Online (Sandbox Code Playgroud)
const asynchronousFunction = async () => {
// do something;
// await something else;
}
Run Code Online (Sandbox Code Playgroud)