WebHU - Programozási kérdések és válaszok

Ígérd meg, hogy nem oldod meg az async használatával, és várj

Próbálok tanulni a Promises és az Async/Await szolgáltatásról.

Kérem, értse meg, hogy új vagyok, ezért bátran csatlakozzon annyi javaslattal, amennyit csak akar.

Az ötlet az, hogy szimulálja a kapcsolatot egy DB-vel vagy egy API-végpont válaszát a retrieveUserFromFB() segítségével, amely ígéretet ad vissza.

Ezután a returnUsernameViaUserid() függvény, amely aszinkron, meghívja a retrieveUserFromFB() parancsot, és feloldja az ígéretet. Vagy én ezt gondolom.

async function returnUsernameViaUserid(userId) {
  const result = await retrieveUserFromFB();
  return result;
}


function retrieveUserFromFB() {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve({user: 'thisistheusername'});
    }, 1000)
  });
}

console.log(returnUsernameViaUserid(1));

De a kimenet mindig Promise { } Megköszönök minden segítséget. A userId csak egy színes részlet, nem funkcionális, és nem adom át a retrieveUserFromFB()-nek. Csak hogy világos legyen =)


Válaszok:


1

A async function ígéretet ad vissza

A probléma az, hogy jelenleg egy aszinkron függvény eredményét próbálja naplózni, amely mindig egy Promise, ennek orvoslására helyezze a console.log-t a async function-be.

Egy másik megoldás az .then használata a retrieveUserFromFB-on, hogy elkerülje a async function-t, ha úgy dönt.

async function returnUsernameViaUserid(userId) {
  const result = await retrieveUserFromFB();
  console.log(result);
}


function retrieveUserFromFB() {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve({user: 'thisistheusername'});
    }, 1000)
  });
}

returnUsernameViaUserid(1)

21.03.2019
  • vagy returnUsernameViaUserid(1).then(res => console.log(res)). 21.03.2019
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..