반응형
공허한 약속을 angularjs로 작성하시겠습니까?
나는 다음과 같은 것을 하고 싶다.
var promise = IAmAEmptyPromise;
if(condition){
promise = ApiService.getRealPromise();
}
promise.then(function(){
//do something
});
그래서 저는 그때로 해결할 수 있는 약속을 선언하고 싶습니다.그러나 이 약속은 내용을 반환하는 다른 약속에 의해 덮어쓸 수 있습니다.나중에 내용이 있든 없든 약속을 해결하고 싶습니다.이게 가능합니까?시도 대상:
var promise = $q.defer().promise;
if(!$scope.user){
promise = UserService.create(params);
}
promise.then(function(){
//either user was created or the user already exists.
});
다만, 유저가 있는 경우는 동작하지 않습니다.좋은 생각 있어요?
빅시가 쓴 것처럼$q.when()
약속이나 가치를 약속으로 포장하는 거죠당신이 건네주는 것이when()
반환되는 약속입니다.그렇지 않으면 전달된 값으로 직접 해결되는 새로운 약속이 생성됩니다.다음과 같은 경우:
var promise;
if(!$scope.user){
promise = UserService.create(params);
} else {
promise = $q.when($scope.user);
}
promise.then(function(user){
//either user was created or the user already exists.
});
네이티브 es-6 약속을 사용하는 경우 Promise.resolve()를 사용하여 즉시 해결된 약속을 만들 수 있습니다.이것은 약속을 작성할 때 유용합니다.
var p = Promise.resolve();
for (var i=0; i<something.length; i++) {
p = p.then(UserService.create(newUsers[i]));
}
p.catch(function(e) {
console.error('oops: ', e);
}).then(function() {
console.log('done.');
});
언급URL : https://stackoverflow.com/questions/22506253/create-empty-promise-in-angularjs
반응형
'prosource' 카테고리의 다른 글
Wordpress 테마에서 이미지 URL을 가져오려면 어떻게 해야 합니까? (0) | 2023.03.19 |
---|---|
WordPress의 상대 URL (0) | 2023.03.19 |
Ajax를 사용하여 데이터 테이블에서 모든 행을 내보내려면 어떻게 해야 합니까? (0) | 2023.03.14 |
jq를 사용하여 2개의 파일에서 2개의 JSON 개체를 병합하려면 어떻게 해야 합니까? (0) | 2023.03.14 |
Angular의 ng-src에 대한 이미지 로드 이벤트JS (0) | 2023.03.14 |