[英]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.