gpt4 book ai didi

javascript - 无法从函数 Javascript 中更新变量

转载 作者:行者123 更新时间:2023-12-03 02:01:04 25 4
gpt4 key购买 nike

我试图从 rows.each() 中更新 rowNumber 变量,但是当我之后 console.log 时,它仍然设置为 null。我究竟做错了什么?我什至尝试定义 var rowNumber 'higher',结果相同。

var licenceNumber = 233521673;

it('should open created Driver Licence', function() {
var rowNumber = null;

var rows = element.all(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index'));

rows.each(function(element, index) {
element.getText().then(function (text) {
if (text.includes(licenceNumber)) {
rowNumber = index;
return true;
}
});
});
console.log('rowNumber = ', rowNumber);
});

最佳答案

使用Promise.all等到所有的 promise 都得到解决:

var licenceNumber = 233521673;

it('should open created Driver Licence', function() {
var rowNumber = null;

var rows = element.all(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index'));

var promises = [];

rows.each(function(element, index) {
var promise = element.getText().then(function (text) {
if (text.includes(licenceNumber)) {
rowNumber = index;
}
});
promises.push(promise);
});

return Promise.all(promises).then(function () {
console.log('rowNumber = ', rowNumber);
});
});

请注意,链接到 Promise.all 的 Promise 也会返回到 Mocha。这很重要,因为它告诉 Mocha 该测试是异步的,并且在返回的 Promise 解决或拒绝之前不会被视为完成。了解更多相关信息here .

关于javascript - 无法从函数 Javascript 中更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com