angularjs watch 方法与 watchExpression 返回一个承诺。
$scope.$watch(function() {
var promise = MyService.getMethod();
promise.then(function(value){
return value;
})
}, function(newValue, oldValue) {
console.log("new value:", newValue);
});
Typescript 调用带有 promise 的方法。
public getMethod(): angular.IPromise<any> {
var deferred: angular.IDeferred<any> = this.$q.defer();
localforage.getItem(‘key’).then(function(value) {
deferred.resolve(value);
}).catch(function(err) {
deferred.reject();
console.log(err);
});
return deferred.promise;
}
我想从 MyService 中的 localforage 承诺返回“值”以返回 $watch watchExpression 函数。