从构造函数返回ES6承诺 - 绑定此

时间:2016-01-26 21:34:40

标签: javascript es6-promise

我想做

X.prototype.f = function() {
    return new Promise(
        function(resolve, reject) {
           if (this.f1()==0) resolve();
           ...

但是this(即X实例)未在promise构造函数中定义。我明白我需要以某种方式绑定它但不确定如何继续?

2 个答案:

答案 0 :(得分:5)

当你使用es6时,你为什么不使用es6?

X.prototype.f = function() {
    return new Promise((resolve, reject) => {
       if (this.f1()==0) resolve();
    });
}

答案 1 :(得分:2)

您可以将其指定给函数

中的另一个变量
X.prototype.f = function() {
    var self = this;
    return new Promise(
        function(resolve, reject) {
           if (self.f1()==0) resolve();
           ...