繁体   English   中英

循环异步函数后如何获得对值的访问

[英]How can I get access to a value after looping a asynchronous function

我试图运行引发异步函数的循环并计算所有元素的总和,在这里我可以访问最终sum

it("Select.all practice", function(){
    element.all(by.css('.items li')).then(function(items) {
        var len = items.length;
        var sum = "";
        for(var counter = 0; counter<len;counter++){
            items[counter].getText().then(function(item){
                sum += item;
                console.log(sum);
            });
        }
    });
});

有一个非常有用的reduce()函数,非常适合用例:

element.all(by.css('.items li')).reduce(function(acc, elem) {
    return elem.getText().then(function(text) {
        return acc + parseInt(text);
    });
}, 0).then(function (value) {
    console.log(value);
});

看起来您在尝试添加时正在处理String。 尝试以下

it("Select.all practice", function(){
    element.all(by.css('.items li')).then(function(items) {
        var len = items.length;
        var sum = 0;
        for(var counter = 0; counter<len;counter++){
            items[counter].getText().then(function(item){
                sum += parseInt(item);
                console.log(sum);
            });
        }
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM