以下是示例代码:
//some code in "OuterFunction"
var outterProm = protractor.promise.Deferred();
(function doMore(arg){
var innerProm = protractor.promise.Deffered();
callSomeFunctionWhichReturnsPromise().then(function(value){
//code to process value
innerProm.fulfill();
};
return innerProm;
})("something").then(function(){
outterProm.fulfill();
});
我观察到量角器调度然后开始执行OutterFunction但是当遇到doMore函数声明时(在OutterFunction执行期间)它调度doMore,但不执行doMore ...导致然后尝试继续执行OutterFunction导致a .then()调用doMore返回值(由于doMore从未执行以返回promise,因此未定义)。
我对此是否正确?这会是一个量角器问题吗?任何解决方法?
答案 0 :(得分:0)
我错误地解决了代码问题。
问题在于: var prom = protractor.promise.Deferred();
应该是: var prom = new protractor.promise.Deferred();
因此,我原来的问题不再有效。