Create empty promise in angular?

后端 未结 2 2014
执笔经年
执笔经年 2020-12-09 07:31

I want to do something like this:

var promise = IAmAEmptyPromise;

if(condition){
    promise = ApiService.getRealPromise();
}

promise.then(function(){
             


        
相关标签:
2条回答
  • 2020-12-09 07:43

    When using native es-6 promises, you can use Promise.resolve() to create an immediately resolved promise. This is useful when composing promises.

    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.');
    });
    
    0 讨论(0)
  • 2020-12-09 07:51

    Like Bixi wrote, you could use $q.when() which wraps a promise or a value into a promise. If what you pass to when() is a promise, that will get returned, otherwise a new promise is created which is resolved directly with the value you passed in. Something like this:

    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.
    });
    
    0 讨论(0)
提交回复
热议问题