Syntaxis voor een asynchrone pijlfunctie

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 asyncpijlfunctie 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 functionen 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');

Other episodes