Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 如何在量角器中使用变量值out then函数_Javascript_Node.js_Protractor - Fatal编程技术网

Javascript 如何在量角器中使用变量值out then函数

Javascript 如何在量角器中使用变量值out then函数,javascript,node.js,protractor,Javascript,Node.js,Protractor,我在“Then”函数中进行一些计算,但我无法将计算输出带出“Then”范围。我在下面给出了一个示例代码 var flag= true; for(let i=1; i<leng, i++){ if(flag){ element(by.xpath("dsds")).click(); --some delete fucntionality element(by.xpath("abc")).all(tagName('li').count().then(function(listL

我在“Then”函数中进行一些计算,但我无法将计算输出带出“Then”范围。我在下面给出了一个示例代码

var flag= true;
for(let i=1; i<leng, i++){
if(flag){     
 element(by.xpath("dsds")).click();
 --some delete fucntionality

 element(by.xpath("abc")).all(tagName('li').count().then(function(listLength) 
{
  if(listlength>1)
  {
   "doing some calculation
   flag=false;
  }
 });
}}
var标志=true;
for(设i=1;i1)
{
“做一些计算
flag=false;
}
});
}}
我的问题是:在上面的代码中,标志值变为false,这应该限制第一个IF块在第二次迭代中的执行。 这是没有发生的…因为标志值保留在THEN函数内和THEN函数外,所以标志值始终为真


如何解决此问题。请有人指导我。

您的问题与
标志的范围无关,与异步JavaScript有关

以下是一个简化的表示法,有助于了解发生了什么:

var标志=false;
对于(变量i=0;i<100;i++){
国际单项体育联合会(旗){
log('已设置标志!');
打破
}否则{
log('尚未设置标志:(');
如果(i==3){
flag=true;
}
setTimeout(function(){console.log('Async callback finally ocated!');},1000);
}

}
您能描述一下您的用例吗?为什么要循环一个
count()
函数?通常您会对它进行一次计数,然后使用该值,就这样了?实际上我在first IF block之后和.count()之前做了很多操作语句。如果第二个if语句满足即listlength>1,我不想执行该语句。只是我没有在这里提到这些语句,以使其更简单。重复我的问题:如何使用第二个if块的标志值来检查第一个if中的条件?:)为了更好地理解我的情况,我编辑了示例代码