Показать сообщение отдельно
  #5 (permalink)  
Старый 01.03.2013, 14:43
Интересующийся
Отправить личное сообщение для Little_Cat Посмотреть профиль Найти все сообщения от Little_Cat
 
Регистрация: 11.08.2012
Сообщений: 16

Гм. Можно было просто спросить что именно получилось. Вывел в интерфейс функций вместе с Callback еще и ErrorCallback и выбрасываю сообщение об ошибке в место вызова функции модуля. Неотработка по месту вероятно как-то связана с асинхронностью работы функций в модуле. Было

01	try {
02	                  if (VisualStateController.getSelectedLine() !== undefined) {
03	                        switch (tileId) {
04	                              case 'InfoDataTile':
05	                                    sceneDataService.getLineInfo(VisualStateController.getSelectedLine(), function (json) {
06	                                          if (json.Result === 'OK') {
07	                                                ................................................
08	                                          } else {
09	                                                throw new Error('sdfsfsdfsfsdfdsdf');
10	                                          }
11	 
12	                                    });
13	                                    break;
14	                              default:
15	                                    sceneDataService.getPartialView(tileId, function (json) {
16	                                          if (json.Result === 'OK') {
17	                                                ................................................
18	 
19	                                          } else {
20	                                          Сюда точно попадаем - генерируется исключение
21	                                          но вместо того, чтобы попасть в catch выше - оно уходит в консоль броузера и отображается там
22	                                           
23	                                                throw new Error('sdfsfsdfsfsdfdsdf');
24	                                          }
25	                                    });
26	                        }
27	                  } else {
28	 
29	                    throw new Error('sdfsfsdfsfsdfdsdf');
30	                  }
31	} catch(e) {
32	      ................................................
33	}

Стало
01	try {
02	                  if (VisualStateController.getSelectedLine() !== undefined) {
03	                        switch (tileId) {
04	                              case 'InfoDataTile':
05	                                    sceneDataService.getLineInfo(VisualStateController.getSelectedLine(), function (json) {
06	                                          if (json.Result === 'OK') {
07	                                                ................................................
08	                                          } else {
09	                                 ErrorCalback(new Error('sdfsfsdfsfsdfdsdf'));
10	                                          }
11	 
12	                                    });
13	                                    break;
14	                              default:
15	                                    sceneDataService.getPartialView(tileId, function (json) {
16	                                          if (json.Result === 'OK') {
17	                                                ................................................
18	 
19	                                          } else {
20	                                          Сюда точно попадаем - генерируется исключение
21	                                          но вместо того, чтобы попасть в catch выше - оно уходит в консоль броузера и отображается там
22	                                      ErrorCalback(new Error('sdfsfsdfsfsdfdsdf'));
23	                              
24	                                          }
25	                                    });
26	                        }
27	                  } else {
28	 
29	                   ErrorCalback(new Error('sdfsfsdfsfsdfdsdf'));
30	                  }
31	} catch(e) {
32	      ................................................
33	}


ну и в месте вызова функции модуля
MyMoDule.MyFunc(Param1, functionCallback(data){}, functionErrorCallback(error){ alert(error.message);});
Ответить с цитированием