Funkce Wait in asynchronní funguje pro všechny potomovatelné

async/await umožňuje psát asynchronní JavaScript, který vypadá synchronně. Pomáhá bojovat s „peklem zpětného volání“. Jaké příkazy ale ve skutečnosti můžeme použít v kombinaci s await ?

Šime Vidas a Axel Rauschmayer měli nedávno opravdu zajímavou konverzaci na Twitteru. Pojďme se tedy podívat na některé úryvky.

(async () => { console.log(await 'foo'); })(); // 'foo'
(async () => { console.log(await 5); })();     // 5

Ukazuje se, že opravdu můžete await cokoliv. To jsem nevěděl. Toto je jeden z těchto malých detailů JS, které opravdu rád objevuji. Pokud await něco, co není příslib, vrátí skutečnou hodnotu.

let thenable = {
  then: (fn) => {
    fn('jup')
  }
};

(async () => { console.log(await thenable); })() // 'jup'

A... nemusí to být slib. Potomable (cokoli, co obsahuje funkci s názvem then ) funguje také dobře. Takže díky Šime a Axelovi za tyto konverzace na veřejnosti.