Ik kan een JavaScript-functie markeren als “async” (d.w.z. een belofte teruggeven) met het trefwoord async
. Zoals dit:
async function foo() {
// Do something
}
Wat is de equivalente syntaxis voor pijlfuncties?
Antwoord 1, autoriteit 100%
Async pijlfunctieszien er als volgt uit:
const foo = async () => {
// do something
}
Async pijlfunctieszien er als volgt uit voor een enkel argumentdat eraan wordt doorgegeven:
const foo = async evt => {
// do something with evt
}
Async pijlfunctieszien er als volgt uit voor meerdere argumentendie eraan worden doorgegeven:
const foo = async (evt, callback) => {
// do something with evt
// return response with callback
}
Het anoniemeformulier werkt ook:
const foo = async function() {
// do something
}
Een asynchrone functie declaratieziet er als volgt uit:
async function foo() {
// Do something
}
Async-functie gebruiken in een callback:
const foo = event.onCall(async () => {
// do something
})
async-methodegebruiken in een klasse:
async foo() {
// do something
}
Antwoord 2, autoriteit 12%
Dit is de eenvoudigste manier om een async
pijlfunctie expressietoe te wijzen aan een benoemdevariabele:
const foo = async () => {
// do something
}
(Merk op dat dit niet strikt equivalent is aan async function foo() { }
. Behalve de verschillen tussen het trefwoord function
en een pijluitdrukking, de functie in dit antwoord is niet “naar de top gehesen”.)
Antwoord 3, autoriteit 6%
Onmiddellijk aangeroepen asynchrone pijlfunctie:
(async () => {
console.log(await asyncFunction());
})();
Onmiddellijk aangeroepen asynchrone functie-expressie:
(async function () {
console.log(await asyncFunction());
})();
Antwoord 4, autoriteit 2%
Asynchrone pijlfunctiesyntaxis met parameters
const myFunction = async (a, b, c) => {
// Code here
}
Antwoord 5, autoriteit 2%
Basisvoorbeeld
folder = async () => {
let fold = await getFold();
//await localStorage.save('folder');
return fold;
};
Antwoord 6
U kunt ook doen:
YourAsyncFunctionName = async (value) => {
/* Code goes here */
}
Antwoord 7
My Async-functie
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);
});
}
Antwoord 8
async function foo() {
// do something
}
is gelijk aan:
const foo = async () => {
// do something
}
Als u foo belt met één argument, zoals het volgende voorbeeld:
async function foo(arg1) {
// do something
}
is gelijk aan:
const foo = async arg1 => {
// do something
}
Als u foo belt met twee argumenten of meer zoals het volgende voorbeeld:
async function foo(arg1, arg2) {
// do something
}
is gelijk aan:
const foo = async (arg1, arg2) => {
// do something
}
En voor een praktisch voorbeeld met een wacht op gebruik binnen:
const foo = async () => await Promise.resolve('done');