Promise.prototype中的Javascript函数。但是没有执行

时间:2017-02-08 15:59:48

标签: javascript oop methods promise prototype

我正在使用Javascript promise api但我的函数内部没有执行;

//defining a class Test
var Test=function(){
    var x="hello from x";
}

//Adding a method with Test class
Test.prototype.someFn=function(){
   console.log("This is from somefn");
}

//Adding another function    
Test.prototype.anotherFn=function(){
   var self=this;
   var p=new Promise(
      function(){
         self.someFn();
   })

   p.then(
       function(){
            console.log("From anotherfn p.then");
   })
 }

最后以下列方式调用它;

var t=new Test();
t.anotherFn();

输出就像;

This is from somefn

为什么没有打印“From anotherfn p.then”。有任何建议请。

1 个答案:

答案 0 :(得分:3)

你永远不会解决这个承诺。

更改

var p=new Promise(
  function(){
     self.someFn();
})

var p = new Promise(function(resolve, reject) {
     self.someFn();
     resolve();
});

请参阅Creating a Promise in the MDN

请注意,您不应该在promise中包含同步函数。假设someFn是异步的,那么应该返回一个承诺。