Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2015, 10:33
Новичок на форуме
Отправить личное сообщение для dmsuslov Посмотреть профиль Найти все сообщения от dmsuslov
 
Регистрация: 28.10.2007
Сообщений: 8

Организация обработки исключительных ситуаций в асинхронных функциях
Всем привет!

Думаю, из исходного кода всё понятно. Если в запросе $.post в success-обработчике вызвать исключение, то его нельзя будет отловить.
Можно, конечно, выставлять какие-нибудь флаги в случае неуспеха, а в .done() их потом проверять, но это как-то коряво...
Как вообще грамотно построить обработку таких ситуаций?

doc = {
 data1: [],
 data2: [],

 init: function () {
  $.when(doc.load_data1(), doc.load_data2()).done(function () {
   doc.show_data1();
   doc.show_data2();
  });
 },

 load_data1: function () {
  return $.post('server.php', {
   get: 'data1'
  }, function (res) {
   if (res === 'bad') {
    // тут проблема
    // как обработать эту ситуацию так, чтобы в функции init()
    // поймать эту ситуацию?
   }
   doc.data1 = res;
  }, 'json');
 },

 load_data2: function () {
  return $.post('server.php', {
   get: 'data2'
  }, function (res) {
   if (res === 'bad') {
    // тут проблема
    // как обработать эту ситуацию так, чтобы в функции init()
    // поймать эту ситуацию?
   }
   doc.data2 = res;
  }, 'json');
 }
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация обработки ответов RESTfull сервера tktl Angular.js 3 10.08.2013 22:42