ITPub博客

首页 > 应用开发 > > 利用setTimeout重复调用函数,赋值相互干扰怎么办?

利用setTimeout重复调用函数,赋值相互干扰怎么办?

作者:apnic 时间:2019-10-23 11:55:39 0 删除 编辑

functiongo_to_position(x, y) {


 

//clearTimeout(movement);

 

if(x_now == x && y_now == y) {

return;

}

 

if(x_now != x || y_now != y) {

if(x_now - x > 0) {

x_now -= 1;

}

if(x_now - x < 0) {

x_now += 1;

}

if(y_now - y > 0) {

y_now -= 1;

}

if(y_now - y < 0) {

y_now += 1;

}


console.log(x_now + ","+ y_now);

}

 

movement = setTimeout(function() {

go_to_position(x, y);

}, 5);

}

 

go_to_position(150, 241);

go_to_position(300, 241);

 

 

//原来的位置是(200.241) 想要先移动到(150.241) 再移动到(300.241)

// 执行的时候多个setTimeout 同时执行, x赋值在150和300 来会变。导致x_now 交替执行+1 -1 

//若插入clearTimeout,直接移动到最后 (300.241)的位置

请问,如何达到先移动到150.241 再移动到300.241 的效果 ?如果强行要用setTimeout的话

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1282/viewspace-3145611/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    121
  • 访问量
    792