Перейти к основному содержимому

Колбэки +

  • Колбэк - это функция, котороя передаётся в виде параметра в другую функцию и вызывается внутри её тела.

Пример синхронного колбэка

const f1 = () => console.log('value >= 0');
const f2 = () => console.log('value is positive or zero');

const someFunc = (value, cb) => {
if (value >= 0) {
return cb();
}

return null;
};

someFunc(10, f1); // вызов функции с колбэком f1 - 'value >= 0'
someFunc(10, f2); // вызов функции с колбэком f2 - 'value is positive or zero'

Колбэк с параметром (thunk или callback-wrapper)

const f1 = text => console.log(text);

const someFunc = (value, cb) => {
if (value >= 0) {
return cb();
}

return null;
};

// вызываем анонимную функцию (thunk или колбэк-обёртка), которая возвращает колбэк с аргументом
someFunc(10, () => f1('value is positive'));

Пример без колбэка

В синхронных колбэках есть смысл только тогда, когда нужно обрабатывать результат по-разному. В остальных случаях нет смысла использовать колбэки, так как можно просто вызывать функции напрямую

const someFunc = value => {
if (value >= 0) {
return console.log('value >= 0');
}

return null;
};

someFunc(10); // 'value >= 0'

Асинхронные колбэки будут рассмотрены в разделе Асинхронность.