⊗jsSpACInr 155 of 294 menu

Асинхронен код с callback функции в JavaScript

Да предположим, че имаме някаква асинхронна функция:

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

Да предположим, че използваме тази функция по следния начин:

make(); console.log('2'); // ще се изпълни първо

Да предположим, че искаме да направим така, че вторият изход в конзолата да се изпълни след като се изпълни асинхронната операция вътре във функцията. Един от подходите, използвани за това, е използването на callback функция: обгръщаме чакащия код в анонимна функция и я предаваме като параметър на функцията make:

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

Разбира се, само по себе си това няма да реши нашата задача. Засега просто сме сключили следното споразумение: ако желаете да изпълните код след задействане на make, подайте този код като callback функция при извикването на make.

Нека поправим кода на функцията make така, че тя да започне да работи в съответствие с нашето споразумение:

function make(callback) { setTimeout(function() { console.log('1'); // някаква асинхронна операция, може и не една callback(); // след това нашият callback }, 3000); }

Разкажете в какъв ред ще се изведат числата в конзолата:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне