Метод setInterval работает правильно при разработке и интеграции сервера, но работает один раз на качество сервера - PullRequest
0 голосов
/ 11 июня 2018

Метод setInterval корректно работает на сервере разработки и интеграции сервера, но работает только один раз на качественном сервере.Глядя в console, об ошибках не сообщается.Трудно найти источник этой ошибки.

Кто-то может иметь представление об этой проблеме?

Ps: у меня один и тот же код, развернутый с одинаковыми библиотеками на трех серверах и в той же версииchrome browser, который я использую для тестов.

Вот минимальный код:

//start timer
var varTimer = 0;
refreshPeriod = 5
varTimer = setInterval(readTimer, 1000);

// function to refresh my datatbale 
refreshDataTable();


function refreshDataTable() {
  var inputs = {};
  flexnetContext.callOperation('FLA_ASO_CockpitOrdersDatatable_001', inputs, successOrdersDataExecution, failureExecution);
}

var successOrdersDataExecution = function() {
  // do some process here and restart timer
  varTimer = setInterval(readTimer, 1000);
}

var successExchangerReadExecution = function() {
  // do some process here and restart timer
  varTimer = setInterval(readTimer, 1000);
}

var failureTimer = function(message) {
  //display error and stop all timer
  newMessage(message, 'error');

}


function readTimer() {   

  // stop timer here and do processing and restart timer in fucntion "successExchangerReadExecution"
  clearInterval(varTimer);
  var inputs = {};
  flexnetContext.callOperation('FLA_ASO_CockpitCheckEvent_001', inputs, successReadExecution, failureTimer);
  inputs = {};
  inputs.ExchangerID = '';
  inputs.Warehouse = warehouse;

  flexnetContext.callOperation('FLA_ASO_ExchangerEvent_001', inputs, successExchangerReadExecution, failureTimer);


  refreshCount += 1;
  if (refreshCount == refreshPeriod) {
    refreshDataTable();
    refreshCount = 0;
  }
}

1 Ответ

0 голосов
/ 12 июня 2018

это минимальный код:

//start timer
var varTimer = 0;
refreshPeriod = 5
varTimer = setInterval(readTimer, 1000);

// function to refresh my datatbale 
refreshDataTable();


function refreshDataTable() {
  var inputs = {};
  flexnetContext.callOperation('FLA_ASO_CockpitOrdersDatatable_001', inputs, successOrdersDataExecution, failureExecution);
}

var successOrdersDataExecution = function() {
  // do some process here and restart timer
  varTimer = setInterval(readTimer, 1000);
}

var successExchangerReadExecution = function() {
  // do some process here and restart timer
  varTimer = setInterval(readTimer, 1000);
}

var failureTimer = function(message) {
  //display error and stop all timer
  newMessage(message, 'error');

}


function readTimer() {   

  // stop timer here and do processing and restart timer in fucntion "successExchangerReadExecution"
  clearInterval(varTimer);
  var inputs = {};
  flexnetContext.callOperation('FLA_ASO_CockpitCheckEvent_001', inputs, successReadExecution, failureTimer);
  inputs = {};
  inputs.ExchangerID = '';
  inputs.Warehouse = warehouse;

  flexnetContext.callOperation('FLA_ASO_ExchangerEvent_001', inputs, successExchangerReadExecution, failureTimer);


  refreshCount += 1;
  if (refreshCount == refreshPeriod) {
    refreshDataTable();
    refreshCount = 0;
  }
}
...