首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >js - while循环只重复一次

js - while循环只重复一次
EN

Stack Overflow用户
提问于 2021-06-23 21:12:52
回答 2查看 57关注 0票数 0

我正在学习编程。

我编写了以下脚本,如果执行,将根据raveMode的当前状态打开或关闭它。我的目标是让它在raveMode打开时重复一次while循环,直到它再次被关闭,然而,它似乎只起到了部分作用。代码如下:

代码语言:javascript
复制
Delay = (ms) => new Promise(res => setTimeout(res, ms));
    

raveMode = !raveMode
    print(raveMode)
    while (raveMode) {
      SetVehicleLights(playerInfo.vehicle, 2);
      await Delay(300);
      SetVehicleLights(playerInfo.vehicle, 0);
    }

基本上,SetVehicleLights(..., 2)会打开车灯,而SetVehicleLighs(..., 0)会关闭车灯。然而,代码只在raveMode打开时打开灯,在raveMode关闭时关闭它们,而不是重复地打开和关闭它们。

我在下面的代码中使用相同的脚本,打开和关闭灯光一次,就像本例中假设的那样:

代码语言:javascript
复制
if (!GetIsVehicleEngineRunning(playerInfo.vehicle)) {
      SetVehicleLights(playerInfo.vehicle, 2);
      await Delay(300);
      SetVehicleLights(playerInfo.vehicle, 0);
}
EN

回答 2

Stack Overflow用户

发布于 2021-06-23 21:21:56

循环重复得很好。但是,在循环的一次迭代结束时“关灯”和在下一次循环开始时“打开灯”之间没有延迟。所以你永远不会感觉到灯是关着的。

由于您希望有两个明显的延迟,因此添加第二个延迟:

代码语言:javascript
复制
while (raveMode) {
  SetVehicleLights(playerInfo.vehicle, 2);
  await Delay(300);
  SetVehicleLights(playerInfo.vehicle, 0);
  await Delay(300);
}
票数 1
EN

Stack Overflow用户

发布于 2021-06-23 21:24:12

代码语言:javascript
复制
while (raveMode) {
  SetVehicleLights(playerInfo.vehicle, 2);
  await Delay(300);
  SetVehicleLights(playerInfo.vehicle, 0);
  await Delay(300);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68100538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档