如何在构造函数中调用promise对象来设置属性

时间:2016-10-03 17:36:56

标签: javascript promise

我是javascript的新手,我需要一些帮助,了解应该如何使用promises(使用bluebird)。下面是我的代码,我希望构造函数在解析属性后初始化属性。

var getCookie = function(object, someParams) {
   return connect(someParams)
   .then(function(response){
      self.cookie = response.cookie;//this should be done as part of object initialization.
      done();
    });
}

var app = function(){
  var self = this;
  getCookie(self);
  //how to make sure that return happens after promise is resolved?
  return self;
}

1 个答案:

答案 0 :(得分:3)

  

如何确保在解决承诺后返回?

你做不到。 {1}}函数将在解析promise之前返回。这甚至可以通过JavaScript保证。

  

如何在构造函数中调用promise对象来设置属性

你没有。

相反,您可以使用工厂方法创建类的新实例,并返回一个解析为实例的promise。

示例:

app

一个使用异步进程的承诺。构造函数是同步的。虽然您可以在构造函数中使用promises,但在解析promise之前,返回的实例将不会完全初始化。但是你的代码永远不会知道它是什么时候。

这就是为什么有一个工厂方法,如果更可靠的方式返回一个解析为类实例的promise。