установить переменную другой интервал времени в заданном интервале - PullRequest
0 голосов
/ 09 марта 2020

У меня есть функция с именем checkInactivity. Я хочу выполнить эту функцию через переменный интервал времени. я выбираю интервал времени getInactiveTimePeriod и теряется в переменной timeInMilliseconds. эта переменная (timeInMilliseconds) содержит разные значения времени каждый раз, когда ее значение выбирается из базы данных. я хочу запустить функцию checkInactivity с этим переменным интервалом времени ie зависит от значения timeInMilliseconds. Пожалуйста, помогите мне решить это. Заранее спасибо.

window.setInterval(function() {
    setInactiveMode();
    setInactiveTimePeriod();
    getInactiveTimePeriod();
 } , 100000);

 var applicationsopend = [];
 var applicationTabId = {};
 var timeInseconds;

 function getInactiveTimePeriod() {
    chrome.storage.local.get("user_inactive_time", function (obj) {
        timeInMinuts = obj.user_inactive_time;
        timeInMilliseconds = timeInMinuts *(60000);
        setTimeout(() => { 
            checkInactivity();
        }, timeInMilliseconds);

    });
 }

// getInactiveTimePeriod();

 function checkInactivity() {
    chrome.storage.local.get("user_inactive_mode", function (obj) {
        inactiveStatusMode = obj.user_inactive_mode;
        if(inactiveStatusMode == 'true') {
            var timeInseconds = timeInMilliseconds / 1000;
            chrome.idle.queryState(timeInseconds, function (state) {
                if (state === "active") {
                    chrome.storage.local.get( "appList", function (obj) {
                        appList = obj.appList.split(",");
                        var queryInfo = {
                            // active: false,
                        currentWindow: false
                        };
                        chrome.tabs.query(queryInfo, function (tabs) {
                            for (var i = 0; i < tabs.length; i++) {
                                var taburl = tabs[i]['url'];
                                currentApp = findApp(taburl);
                                currentHashUrl = CryptoJS.SHA1(currentApp).toString(CryptoJS.enc.Hex);
                                if($.inArray(currentHashUrl, appList) != -1 && currentApp != 'onionid' ) {
                                    var tabid = tabs[i]['id'];
                                    currentApp = findApp(taburl);
                                    applicationTabId[currentApp] = tabid;
                                }
                            }
                            //console.log(applicationTabId);
                            getapplicationlogouturl(applicationTabId);
                        });
                    }); 
                }
            });  
        }
    });
 }

1 Ответ

0 голосов
/ 09 марта 2020

Получив время, которое вы хотите использовать для интервала, используйте setInterval(), чтобы вызывать функцию неопределенно каждые миллисекунды:

function getInactiveTimePeriod() {
    chrome.storage.local.get("user_inactive_time", function (obj) {
        let timeInMinutes = obj.user_inactive_time;
        let timeInMilliseconds = timeInMinutes * (60000);
        setInterval(() => {
            checkInactivity();
        }, timeInMilliseconds);
    });
}

Обратите внимание, что если вы хотите использовать это значение в некоторых в другом месте, это должно быть объявлено в более высоком объеме:

// global declaration
var timeInMilliseconds;

function getInactiveTimePeriod() {
    chrome.storage.local.get("user_inactive_time", function (obj) {
        let timeInMinutes = obj.user_inactive_time;
        timeInMilliseconds = timeInMinutes * (60000); // setting the globally declared variable
        setInterval(() => {
            checkInactivity();
        }, timeInMilliseconds);
    });
}

function checkInactivity() {
    var timeInseconds = timeInMilliseconds / 1000; // use the globally declared variable

    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...