Угловая2 имеет очень полезный механизм для обнаружения ошибок для цепных обещаний. Тем не менее, обычный случай (по крайней мере для меня) - это обещания, вызванные из обработчика разрешения предыдущего. Это связано с необходимостью обработки информации до начала следующего обещания. Например:ловли ошибки в машинописных обещаниях
this.d("facebookOAuthLogin() - starts");
this.fbProvider.login().then(
(loginResponse: { status: string, authResponse: any, accessToken: string, expiresIn: string, session_key: string, sig: string, userID: string }) =>
{
this.d("facebookOAuthLogin() - fbProvider.login() succeeded");
Config.config.sessionToken = loginResponse.authResponse.accessToken;
this.fbProvider.getCurrentUserProfile().then(
(profileData : { email: string, name: string }) =>
{
this.d("facebookOAuthLogin() - fbProvider.getCurrentUserProfile() succeeded");
Config.config.user_email = profileData.email;
Config.config.user_name = profileData.name;
this.fbProvider.getUserPicture().then(
(pictureData : { data:{ is_silhouette: boolean, url: string, width: number, height: number } }) =>
{
this.d("facebookOAuthLogin() - fbProvider.getUserPicture() succeeded");
// this.facebook_picture_url = pictureData.data.url;
// this.facebook_picture_is_silhouette = pictureData.data.is_silhouette;
if(pictureData.data.is_silhouette || pictureData.data.url == null)
{
this.d("facebookOAuthLogin() - pictureData.data.url == null");
Config.config.jpegBase64Data = null;
this.afterFacebookLogin();
}
else
{
this.d("facebookOAuthLogin() - pictureData.data.url != null");
ImageStore.readToData(pictureData.data.url).then(
dataBase64 =>
{
this.d("facebookOAuthLogin() - facebook picture read successfully");
Итак, вопрос - Если я хочу, чтобы поймать все ошибки во всех обработчиках самым простым способом (давайте оставим вне тип исключений - Допустим, мне просто нужно войти ошибка и отчет. Любая ошибка - без обработки их отдельно.)
Из чего я понимаю, что попытка try {} catch (err) вокруг кода не будет ловить ошибки, выброшенные из обработчика Promise.
С кодом выше - Нужно ли добавить попытку/улов в каждом обработчике Promise, или я могу использовать внешний метод()()().