Жасмин + AngularJS resourceService удаляет `$ обещание` - PullRequest
0 голосов
/ 20 февраля 2020

Я запрашиваю некоторые ресурсы с сервера с 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...