Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从构造函数返回ES6承诺-绑定此_Javascript_Es6 Promise - Fatal编程技术网

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

Javascript 从构造函数返回ES6承诺-绑定此,javascript,es6-promise,Javascript,Es6 Promise,我想做什么 X.prototype.f = function() { return new Promise( function(resolve, reject) { if (this.f1()==0) resolve(); ... 但是,此(即X实例)未在promise构造函数中定义。我知道我需要以某种方式绑定它,但不确定如何继续?您可以将其分配给函数中的另一个变量 X.prototype.f = function() {

我想做什么

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

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

您可以将其分配给函数中的另一个变量

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

您可以将其分配给函数内的另一个变量

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

既然您正在使用es6,为什么不使用es6

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

既然您正在使用es6,为什么不使用es6

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