我正在尝试在protractor的
因此,我的排序方法有一个取决于promises解决的条件。
为了使它与低于6的node.js版本兼容,我使用了一个名为
以下是我的代码,其中的
ElementArrayFinder
上实现一个排序方法。众所周知,所有的protractor方法都会返回promises。因此,我的排序方法有一个取决于promises解决的条件。
为了使它与低于6的node.js版本兼容,我使用了一个名为
async/await
的node插件。(插件链接: https://www.npmjs.com/package/asyncawait)以下是我的代码,其中的
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)
的打印之前发生。
你有什么想法我做错了什么?有什么方法可以实现我的目标吗?
非常感谢任何帮助。