javascript - Angular error not thrown from promise finally block -


for reason dont see errors (like syntax error) when appear inside 'finally' block of promise. why that?

angular.module('app', [])   .controller('appctrl', function(testservice) {      testservice.outermethod().then(function() {       console.log('success')     }, function(error) {       console.error('error')     })    })  .service('testservice', function($q) {    this.outermethod = outermethod;    function innermethod() {     var deferred = $q.defer();     deferred.resolve();     return deferred.promise;   }    function outermethod() {      var deferred = $q.defer();      // syntaxerrorvisible      innermethod().finally(function() {        // syntaxerrornotvisible       deferred.resolve();      });      return deferred.promise;   }  })  ; 

codepen: http://codepen.io/anon/pen/vojgpg

the problem that, when uncomment comments, occur syntax errors, wont wee errors (in browser console) when errors placed inside 'finally' block of code.

expecting syntax error not shown showing error expected

the problem way return promise:

return deferred.promise 

on line returned original promise. caller knows nothing finally attached it. in order keep chain, need return promise returned finally:

function outermethod() {      var deferred = $q.defer();      // syntaxerrorvisible      return innermethod().finally(function() {        syntaxerrornotvisible       deferred.resolve();      }); } 

updated pen


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -