Това е нещо, което се мъчех да разбера в началото, особено разликата между асинхронните и стандартните обратни извиквания. Надяваме се, че това ще изясни нещата за всеки, който има затруднения с тази концепция.

Функцията за обратно извикване е просто функция, която се предава като аргумент на друга функция и се извиква обратно (изпълнява) в тази функция. Например:

function makePainting(callback) {
    let penThickness = prompt('Please enter a pen thickness');
    callback(penThickness);
}

function paint(penThickness) {
    console.log(penThickness);
}

makePainting(paint);

Тук paint работи като функция за обратно извикване. Това се възползва от факта, че функциите на JavaScript също са стойности, така че могат да се предават по същия начин като примитивите. Освен това, това е пример за синхронно обратно извикване в действие.

Асинхронни обратни извиквания

Преди обещанията и асинхронната функция, обратните извиквания бяха основният начин за активиране на асинхронно програмиране в JavaScript. JavaScript идва с вградени асинхронни функции за обратно извикване, като setTimeout, които са проектирани да работят по асинхронен начин.

Най-често срещаните случаи на тези асинхронни функции за обратно извикване са следните:

  1. setTimeout
  2. setInterval
  3. onLoad функция в обекта XMLHttpRequest

Ако искате да създадете свои собствени асинхронни функции, научете за обещанията и след това можете да използвате ключовите думи async и await, за да създадете асинхронно поведение във вашите програми.

За да се гмурнете по-дълбоко: