与Promise回调混淆行为

时间:2015-03-18 08:58:56

标签: javascript angularjs typescript

有谁知道这是如何运作的?

当我在这样的typescript angularjs类中声明一个Promise:



constructor() {
var promise = customService.getObjects();

promise.then(
$scope.successCallback,
$scope.errorCallback);

$scope.successCallback = () => {}
$scope.errorCallback= () => {}
}




...当承诺结算时,这些回调不会运行。当我先声明它们然后运行promise时,回调工作正常。像这样:



constructor() {

$scope.successCallback = () => {}
$scope.errorCallback= () => {}

var promise = customService.getObjects();

promise.then(
$scope.successCallback,
$scope.errorCallback);

}




这是一些棘手的javascript /打字稿吗? 这对我来说似乎很不合逻辑。

1 个答案:

答案 0 :(得分:3)

那是因为你只是在第一种情况下将'undefined'传递给.then()。这些功能是否需要附加到$ scope?你能创建一个匿名函数而不是then()中定义的函数吗?或者你可以让这些函数自己调用那些附加到$ scope但尚未定义的函数。