Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在循环一个异步函数之后,如何获得对值的访问_Javascript_Selenium_Webdriver_Protractor_End To End - Fatal编程技术网

Javascript 在循环一个异步函数之后,如何获得对值的访问

Javascript 在循环一个异步函数之后,如何获得对值的访问,javascript,selenium,webdriver,protractor,end-to-end,Javascript,Selenium,Webdriver,Protractor,End To End,我试图运行抛出一个异步函数循环并计算所有元素的和,在这里我可以访问最终的和 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++){

我试图运行抛出一个异步函数循环并计算所有元素的和,在这里我可以访问最终的

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);
            });
        }
    });
});
it(“Select.all practice”,函数(){
元素.all(by.css('.items li'))。然后(function(items){
var len=items.length;
var sum=“”;

for(var counter=0;counter看起来您在尝试进行加法时正在处理字符串

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);
            });
        }
    });
});
it(“Select.all practice”,函数(){
元素.all(by.css('.items li'))。然后(function(items){
var len=items.length;
var总和=0;
对于(var counter=0;counter有一个非常有用的函数,它非常适合用例:

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);
});

谢谢,我在哪里可以访问循环外的和值?在哪里添加?然后在计算sum@user1684140请参阅使用
reduce()的替代方法
。OP的主要问题是操作的异步性,这个答案无法解决。天哪!我应该开始在量角器上找工作了。我不知道存在
reduce
函数!