У меня проблема с defer promise
в angularjs.Отклонение и обещание в angularjs не работает должным образом
Вот мой код:
var defer = $q.defer();
defer.promise
//First Execution
.then(function() {
TestService.GetSchoolYear().then(function (results) {
$scope.schoolYears = results.data;
$scope.schoolYear = results.data[0].schlYearName;
});
})
//Second Execution
.then(function() {
TestService.GetAffiliation().then(function (results) {
$scope.affiliation = results.data;
$scope.school = results.data[0].affiliation;
});
})
//Third Execution
.then(function() {
TestService.GetDepartment().then(function (results) {
$scope.departments = results.data;
$scope.department = results.data[0].depName;
$scope.depCode = results.data[0].depCode;
});
})
//Fourth Execution
.then(function() {
TestService.GetYearLevel2($scope.depCode).then(function (results) {
$scope.yearLevels2 = results.data;
$scope.yearLevel2 = results.data[0].yearName;
});
});
defer.resolve();
Все исполнение в порядке. Но отсрочка выполняет в разных функциях не по порядку.
Что случилось с моим кодом? Есть ли какие-либо проблемы с ним.
Я получил эту ссылку здесь: https://thinkster.io/egghead/promises/
ли я что-то с моим кодом отсутствует. Все, что я хочу, - это выполнить функцию по порядку, потому что в другой функции есть некоторые данные.
спасибо.
Когда я должен использовать 'Defer', когда нормально его связывать? –
Вам нужно когда-либо использовать '$ q.defer', когда вы конвертируете обеими обеими асинхронными функциями для работы с обещаниями. Если у вас уже есть функция, которая возвращает обещание, например '$ http', то просто верните его или верните новое обещание, созданное с помощью' .then' –
ah ok..thanks для этой информации .. я попробую его, и если он решает, я отметю его как ответ .. спасибо. –