Асинк/синк callback
Синхронний callback
Виконується одразу, під час виклику основної функції. Тобто - у тому ж стеку викликів (до завершення поточної функції).
Приклад:
javascript
function process(callback) {
console.log('До колбека');
callback(); // виконується негайно
console.log('Після колбека');
}
process(() => console.log('Синхронний callback'));Вивід:
javascript
До колбека
Синхронний callback
Після колбекаВсе виконується по порядку, без затримок.
Асинхронний callback
Викликається пізніше, після завершення поточного коду - наприклад, за таймером, після запиту, події тощо. Тобто - у наступному циклі подій (event loop).
Приклад:
javascript
function processAsync(callback) {
console.log('До колбека');
setTimeout(callback, 0); // виконається пізніше
console.log('Після колбека');
}
processAsync(() => console.log('Асинхронний callback'));Вивід:
javascript
До колбека
Після колбека
Асинхронний callbackКолбек виконується не одразу, а після того як стек викликів звільниться.
Коротко:
| Тип | Коли виконується | Приклад |
|---|---|---|
| Синхронний | Одразу, під час виклику | array.map(fn) |
| Асинхронний | Пізніше, після основного коду | setTimeout(fn, 0), fetch().then(fn) |
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.