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.
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(); }); }
Comments
Post a Comment