⊗jsSpACInr 155 of 294 menu

Asynchronní kód s callbacky v JavaScriptu

Předpokládejme, že máme nějakou asynchronní funkci:

function make() { setTimeout(function() { console.log('1'); }, 3000); }

Předpokládejme, že tuto funkci používáme následujícím způsobem:

make(); console.log('2'); // provede se první

Předpokládejme, že chceme, aby se druhý výpis do konzole provedl až poté, co se dokončí asynchronní operace uvnitř funkce. Jedním z přístupů, které se k tomu používají, je použití callbacku: zabalíme kód, který má čekat, do anonymní funkce a předáme ji jako parametr funkci make:

make(function() { console.log('2'); });

Samozřejmě, samo o sobě to náš problém nevyřeší. Zatím jsme pouze uzavřeli tuto dohodu: při přání spustit kód po provedení make předejte tento kód jak callback při volání make.

Upravme kód funkce make tak, aby začala pracovat v souladu s naší dohodou:

function make(callback) { setTimeout(function() { console.log('1'); // nějaká asynchronní operace, nemusí být jen jedna callback(); // poté náš callback }, 3000); }

Vysvětlete, v jakém pořadí se vypíšou čísla do konzole:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
itrubymska