Я думал, что правильно использовал интерфейс AngularJS $q. Но функция, которую я передаю в обратный вызов then
, никогда не выполняется. И я звоню resolve
в функции, которая завернута $q
. Я подтвердил, что resolve()
вызывается, но, кажется, это не та же функция, которая прикована с .then()
:
$q(function(resolve, reject) {
resolve();
reject();
console.log("This happens"); //This shows that resolve() is being called
}).then(function() {
console.log("This doesn't"); //Yet this never gets executed
}).catch(function() {
console.log("This also doesn't happen");
});
Выход:
This happens
Что я делаю неправильно?
Мое окружение - это единичный тест KarmaJS с моккой и синон-чаем.
Вы можете добавить отклонение и посмотреть, если это срабатывает и почему? –
@ Даян Морено Леон: Сделал так и обновил вопрос. Функция 'catch' также не выполняется. –
Да, пропущенная часть, где это было испытание, Remco прав, вам нужно запустить цикл углового перебора, используя либо $ apply, либо $ digest –