Javascript 设置代码中的超时位置? (C=0;C.$SCONE.GracPrtuthSunk.Cuth.C++) 如果(c==0){ Plotly.newPlot(graphRender,[$scope.graphPlots2[c]],$scope.layout2); }否则{ setTimeout(函数(){ $scope.testCounter.push(u.clone(c)); log($scope.testCounter); Plotly.addTraces(graphRender,$scope.graphPlots2[c]); },0); } }
调用Plotly addTraces会引发错误,因为计数器“c”未同步: 如果没有超时,则不会出现错误,但直到循环结束,跟踪才会反映在视图中。我希望看到大数据绘图的跟踪一个接一个地出现,这可能会很慢,所以至少c代码在运行时会发生一些变化Javascript 设置代码中的超时位置? (C=0;C.$SCONE.GracPrtuthSunk.Cuth.C++) 如果(c==0){ Plotly.newPlot(graphRender,[$scope.graphPlots2[c]],$scope.layout2); }否则{ setTimeout(函数(){ $scope.testCounter.push(u.clone(c)); log($scope.testCounter); Plotly.addTraces(graphRender,$scope.graphPlots2[c]); },0); } },javascript,angularjs,plotly,Javascript,Angularjs,Plotly,调用Plotly addTraces会引发错误,因为计数器“c”未同步: 如果没有超时,则不会出现错误,但直到循环结束,跟踪才会反映在视图中。我希望看到大数据绘图的跟踪一个接一个地出现,这可能会很慢,所以至少c代码在运行时会发生一些变化 任何建议,不知道从这里去哪里 使用foreach而不是for循环以某种方式解决了这个问题 for(c=0; c < $scope.graphPlotsChunk.length; c++ ){ if(c == 0){
任何建议,不知道从这里去哪里 使用foreach而不是for循环以某种方式解决了这个问题
for(c=0; c < $scope.graphPlotsChunk.length; c++ ){
if(c == 0){
Plotly.newPlot(graphRender, [$scope.graphPlots2[c]], $scope.layout2);
}else{
setTimeout(function() {
$scope.testCounter.push(_.clone(c));
console.log($scope.testCounter);
Plotly.addTraces(graphRender, $scope.graphPlots2[c]);
},0);
}
}
使用foreach而不是for循环以某种方式解决了这个问题
for(c=0; c < $scope.graphPlotsChunk.length; c++ ){
if(c == 0){
Plotly.newPlot(graphRender, [$scope.graphPlots2[c]], $scope.layout2);
}else{
setTimeout(function() {
$scope.testCounter.push(_.clone(c));
console.log($scope.testCounter);
Plotly.addTraces(graphRender, $scope.graphPlots2[c]);
},0);
}
}
你试过
$timeout()
吗?不在这里,我会给它一个goreference:忽略!并没有错误,延迟持续时间并没有影响,所有跟踪都出现在循环结束时,但计数器不同步并没有问题!!?你试过$timeout()
吗?不在这里,我会给它一个goreference:忽略!并没有错误,延迟持续时间并没有影响,所有跟踪都出现在循环结束时,但计数器不同步并没有问题!!?这不仅仅是对forEach的更改;这是完全不同的代码。很明显,您在原始问题中遗漏了一些内容。@MikeMcCaughan是的,您是对的,我编辑了原始帖子以反映原始错误/代码,这不仅仅是对forEach
的更改;这是完全不同的代码。很明显,你在原来的问题中漏掉了一些东西。@MikeMcCaughan是的,你是对的,我编辑了原来的帖子以反映最初的错误/代码