С обратными вызовами я оборачиваю обратный вызов в блок Angular $ timeout, чтобы он обновлял пользовательский интерфейс.
function makeServerRequest(callback) {
$timeout(callback);
}
makeServerRequest((response) => {
$scope.updateUI();
})
Это работает в цикле углового дайджеста, и пользовательский интерфейс обновляется.
Однако это не работает:
function makeServerRequest() {
return new Promise((resolve, reject) => {
$timeout(() => {
resolve();
});
})
}
makeServerRequest().then(() => {
$scope.updateUI();
})
В этом случае кажется, что разрешение происходит, и затем $scope.updateUI();
вызывается по истечении времени ожидания.
Как я могу обернуть resolve
в тайм-аут, чтобы внешний таймер вызывался внутри тайм-аута?