我想在量角器ElementArrayFinder
上實現排序方法。衆所周知,所有量角器方法都會返回承諾。 所以我的排序方法有一個條件,這取決於承諾解決方案。 我爲了我使用async/await
節點插件,使其與node.js的版本低於6 (此處插件:https://www.npmjs.com/package/asyncawait)兼容在數組的排序函數中實現異步/等待javascript
這裏我的代碼,其中this
是ArrayElementFinder
:
var asyncCompare = async(function(a, b) {
let x = await (a.getText());
let y = await (b.getText());
console.log(x.localeCompare(y));
return x.localeCompare(y);
});
var sortTheArray = async(function(arrayOfElementFinders) {
return await (arrayOfElementFinders.sort(asyncCompare));
});
this.then((elements) => {
let arrayOfElementFinders = [elements[0], elements[1], elements[2]];
let sortedArray = sortTheArray(arrayOfElementFinders);
console.log('array sorted');
});
不幸的是,時間執行不是我所期望的。打印:array sorted
發生在比較x.localeCompare(y)
的打印之前。 任何想法我做錯了什麼?任何想法如何實現我的目標?
非常感謝您的幫助
Array.prototype.sort是一個同步函數。 – tibetty