Отсутвие задержки при вызове setTimeout

201
20 сентября 2018, 07:40

ФункцияscheduleUpdatesInRedis() назначает обновления. Для этого, она вызывает функцию performScheduledUpdateOfDataInRedis(), рекурсивно вызывающую себя спустя время, расчитываемое функцией getTimeLeftBeforeUpdate().

Если я понимаю правильно, я в качестве первого параметра setTimeout() передаю именно анонимную функцию, а не результат ее выполнения, следовательно, задержка быть должна, так как в стандартном потоке вывода значения getTimeLeftBeforeUpdate() всегда большие.

Исходные коды функций:

scheduleRanksUpdates : () => {
    console.info(`Updates of ranks in redis have been scheduled`);
    setTimeout(() => {
        return performScheduledRanksUpdatesInRedis(); // It will be called infinitely unless interrupted
    }, getTimeLeftBeforeUpdate());
}

И

function performScheduledUpdateOfDataInRedis(index, url, fn = null) {
    //updateDataInRedis(index, url, fn);
    console.info(getTimeLeftBeforeUpdate());
    setTimeout(function () {
        return performScheduledUpdateOfDataInRedis(index, url, fn);
    }, getTimeLeftBeforeUpdate());
}

Вывод:

performScheduledUpdateOfDataInRedis(index, url, fn); 31518656000 31518656000 31518656000 31518656000 31518656000 31518656000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000 31518655000

Answer 1

В посте до редакции был приведен исходный код другой функции. Исходный код scheduleUpdatesInRedis():

scheduleUpdatesInRedis :  (index, url, fn = null) => {
    console.info(`Updates of ${index} [${url}] in redis have been scheduled`);
    setTimeout(() => {
        console.info('performScheduledUpdateOfDataInRedis(index, url, fn);');
        return performScheduledUpdateOfDataInRedis(index, url, fn); // It will be called infinitely unless interrupted
    }, getTimeLeftBeforeUpdate());
}
READ ALSO
Загрузить файлы Django с AJAX [закрыт]

Загрузить файлы Django с AJAX [закрыт]

Нужен чтобы пользователь загружал видео на сайт с AJAXВот мой файлы:

209
Facebook API - Как получить разрешение user_posts

Facebook API - Как получить разрешение user_posts

У Facebook есть возможность получать разрешение на получение данных пользователя, но чтобы получить его, надо подавать запрос, который еще и проверяют...

226