我正在使用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”。有任何建议请。
答案 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
是异步的,那么应该返回一个承诺。