Jedna věc, kterou na JavaScriptu miluji, je, že existuje mnoho způsobů, jak splnit stejný úkol, jedním z takových příkladů je vytváření funkcí. Existuje několik vzorů pro funkce; jedním z posledních, které vidíte, je new Function
metoda:
/* new Function(arg1, arg2 (...), body) */ const myFunction = new Function('users', 'salary', 'return users * salary');
Co když chcete použít tento new Function
způsob vytvoření asynchronní funkce? Musíte být trochu chytří a díky MDN máme odpověď:
// Shim for allowing async function creation via new Function const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor; // Usage const fetchPage = new AsyncFunction("url", "return await fetch(url);"); fetchPage("/").then(response => { ... });
Použití
je super chytrý, jako nativní Object.getPrototypeOf(async function(){}).constructor
AsyncFunction
neexistuje. Nevěřím, že jsem někdy použil new Function
vzor, ale to neznamená, že ne! A nyní je můžete nastavit jako asynchronní!