将承诺定义为ES6类方法

时间:2015-10-18 21:30:46

标签: javascript node.js ecmascript-6

使用ES6语法定义类及其方法,如何将方法定义为Promise,而不必将其包装在返回promise的常规函数​​中?我想做类似以下的事情:

class PromiseMethod {

   promiseMethod = new Promise(function(resolve, reject) {
        return resolve();
   }
}

1 个答案:

答案 0 :(得分:4)

Promise只是一个函数返回的对象 - 无论是方法还是不重要都无关紧要。试试这个:

class Something {
  promiseMethod () {
    return new Promise(...);
  }
}

(new Something).promiseMethod().then(...)

但也许你想必须调用该方法并能够直接使用Promise方法?在这种情况下,它不是一种方法,它是一个属性

class Something {
  constructor () {
    this.promiseProperty = new Promise(...);
  }
}

(new Something).promiseProperty.then(...);