![](/img/trans.png)
[英]Selenium - Wait for Javascript function to execute before continuing
[英]Wait for function to execute before continuing
我对Promise陌生,但是我试图在继续之前先执行一个函数(该函数返回一个数字)。 我尝试了以下方法,但没有任何效果:
var whatNumber = function(){
var defer = $q.defer();
myNumber.get().then(defer.resolve);
return defer.promise;
}
我也尝试过:
var whatNumber = function(){
var defer = $q.defer();
defer.resolve( myNumber.get());
return defer.promise;
}
最后,我在没有承诺的情况下尝试了它:
var whatNumber = function(){
myNumber.get().then(function(result) {
return result;
});
}
有人有任何想法我在做什么错吗?
您应该阅读有关有差别的反模式的信息,您可以return myNumber.get();
;。 从函数:
var whatNumber = function(){
return myNumber.get();
}
或者,如果您需要从结果中返回特定属性:
var whatNumber = function(){
return myNumber.get().then(function(result) {
return result.data;
});
}
如果要使用antipattern方法(应避免使用),则需要解析promise并传递参数:
var whatNumber = function(){
var defer = $q.defer();
myNumber.get().then(function(result) {
defer.resolve(result);
});
return defer.promise;
}
whatNumber().then(function(result) {
console.log(result);
});
亲密无间,从我所看到的来看,您只是将解决方案的目标定位不正确。 您需要解决计划使用的值(数据)
var whatNumber = function(){
var defer = $q.defer();
myNumber.get().then(function(response){
defer.resolve(response.data)
});
return defer.promise;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.