Я жду ответа от сервера для добавления задачи в список (это происходит в фоновом режиме), но хочу показать таймаут в пользовательском интерфейсе через 1 минуту с сообщением о том, что операция занимает больше времени чем ожидалось, ответ сервера может быть успешным или неудачным.
Q.when(api.getTask(taskId))
.then(function(data) {
dispatch({type:'GET_TASK_REQUEST', data});
}).then(function() {
Notify.showSuccess('Get task was a success');
dispatch({type: 'GET_TASK_SUCCESS'});
}).fail(function(error) {
Notify.showError(error);
dispatch({type: 'GET_TASK_FAILURE'});
});
setTimeout(() => {
if(isLoading)
dispatch({type: 'GET_TASK_TIMEOUT'});
}, 60 * 1000);
На основе действия GET_TASK_TIMEOUT, которое отправляется, если сервер все еще не вернул ответ, я установил состояние, чтобы показать уведомление о том, что операция занимает больше времени, чем ожидалось в пользовательском интерфейсе. Это правильный подход? Он выполняет свою работу, но я раньше не использовал тайм-аут таким образом, и я не знаю, правильный ли это способ go об этом.