[英]Return array after resolve promise
我正在嘗試解決我的問題,但是我沒有更多的想法了。 我想創建函數以根據類型變量返回值數組。
我想檢查發送給函數的參數是字符串數組還是Webelements數組,並且我想將此數組返回給其他函數進行排序。
這是我的代碼:
private static returnByType(unSortedElements) {
var i = 0;
var unSorted = [];
if (typeof unSortedElements[0] === 'string') {
unSorted = unSortedElements;
return unSorted;
} else {
return unSortedElements.each((eachName) => {
eachName.getText().then((name) => {
unSorted[i] = name;
i++;
})
})
}
}
如果我將字符串數組傳遞給此函數,它將返回帶有此字符串的數組,但是當我傳遞給那里的Webelements列表時,我得到一個空數組(在else塊中)。 我應該如何從else塊返回unSorted?
如果您正在處理承諾,那么您就不能只返回價值,這永遠是一個承諾。 您的代碼可能應該是這樣的:
private static returnByType(unSortedElements) {
var i = 0;
var unSorted = [];
if (typeof unSortedElements[0] === 'string') {
unSorted = unSortedElements;
// Promise.resolve(unSorted) to unify with else
return Promise.resolve(unSorted);
} else {
// return type will be Promise<[]>
return Promise.all(unSortedElements.map((eachName) => eachName.getText()));
}
}
現在,該函數的返回類型為Promise<[]>
。 然后您可以像這樣使用它:
returnByType(args).then((unsorted) => ...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.