Я запрашиваю некоторые ресурсы с сервера с resourceService.newOrGet(...)
. Затем я вкладываю разрешения обещаний с помощью then
, так что обратный вызов срабатывает после того, как все были разрешены.
Это прекрасно работает в моем браузере, но когда я запускаю его с помощью karma + jasmine, $promise
элементы удаляются после первого then
:
$scope.a = resourceService.newOrGet('/a.json');
$scope.b = resourceService.newOrGet('/b.json');
$scope.c = resourceService.newOrGet('/c.json');
console.log([!!$scope.a.$promise, !!$scope.b.$promise, !!$scope.c.$promise]);
// => [true, true, true]
$scope.a.$promise.then(() => {
console.log([!!$scope.a.$promise, !!$scope.b.$promise, !!$scope.c.$promise]);
// => [true, true, false]
$scope.b.$promise.then(() => {
// => [true, true, false]
$scope.c.$promise.then(() => {
myCallback();
}
}
}
В браузере все обещания печатаются для каждого console.log
вызова. Но в Карма-Жасмин последний $scope.c.$promise
равен undefined
во всех, кроме первого вызова, и я получаю
Не могу прочитать свойство 'then' неопределенного
ошибка при достижении $scope.c.$promise.then
.
Любая идея, почему или что я могу с этим поделать?
AngularJS v1.5