如何使用promise作为方法?

时间:2017-12-22 19:20:41

标签: javascript node.js promise es6-promise

我有一个对象(myObject)。对于这个对象,我创建了一个方法(objectPromise),它返回一个Promise

function myObject(){
   this.number = 2;
   this.objectPromise = function(data) {
        return new Promise((resolve, reject) => { 
            if (data == this.number) {
               resolve();
            } else {
               reject();
            }
       });
   };
 };

然后我有这个代码 1)

obj = new myObject();
myPromise1
.then(obj.objectPromise)
.then(function(result){

})
.catch(function(err){

});

2)

obj = new myObject();
myPromise1
.then(function(result){
   obj.objectPromise(result)
})
.then(function(result){

})
.catch(function(err){

});

我不明白为什么 1)没有打电话给我的承诺

1 个答案:

答案 0 :(得分:0)

对于 1),您将使用此行.then(obj.objectPromise)返回该函数,而不是承诺本身,因此它实际上从未被调用。

基于 1) 2),如果myPromise1正在返回result,如果我正确理解了问题,我认为您正在寻找更多的东西:

obj = new myObject();
myPromise1
  .then((result) => 
    obj.objectPromise(result)
      .then((res) => {
        console.log('objectPromise success code here')
      })
      .catch((err) => {
        console.log('objectPromise fail code here')
      }))
  .catch((err) => {
    console.log('myPromise1 fail code here')
  });