问题:JavaScript 能够成功地在屏幕上绘制几条弧线,但它们在运行时消失了。我正在运行一个调用 ARC 函数的简单循环,但我不明白!?
我要做的就是逐步运行每个呼叫并睡觉!这可以用 JavaScript 之外的任何语言轻松完成,它是一个简单的过程循环。
问题是我的图表在消失之前出现了一瞬间。但是,如果我通过 JavaScript 调试器跟踪代码,它会一直工作,直到它再次消失!
沮丧的!我试图用 timeOut 来包装它,这样我就可以睡觉来显示一个缓慢的动画。我的朋友们到底发生了什么,这是 JavaScript 中的一个错误,还是我的基础不存在。当它如此合乎逻辑地编写时,我无法理解代码流。
https://jsfiddle.net/nd6gktmf/
var array_length = attack_list.length;
//EDITED: declare local variables
var coordinates,
origin_longitude,
origin_latitude,
dest_longitude,
dest_latitude;
for(var i=0; i < array_length; i++) {
coordinates = attack_list[i];
//EDITED: consider using dot notation
origin_longitude = coordinates.origin.longitude;
origin_latitude = coordinates.origin.latitude;
dest_longitude = coordinates.destination.longitude;
dest_latitude = coordinates.destination.latitude;
draw_arc(origin_longitude, origin_latitude, dest_longitude, dest_latitude);
}
这仅在调试模式下有效!什么....
function draw_arc(origin_longitude, origin_latitude, dest_longitude, dest_latitude) {
var data_to_map =
[{
origin: {
latitude: origin_latitude,
longitude: origin_longitude
},
destination: {
latitude: dest_latitude,
longitude: dest_longitude
}
}];
console.log("****** Begin******");
console.log(origin_longitude);
console.log(origin_latitude);
console.log(dest_longitude);
console.log(dest_latitude);
console.log("****** End ******");
election.arc(data_to_map, {strokeWidth: 2});
}