【问题标题】:New to javascript and trying to use setTimeout [duplicate]javascript新手并尝试使用setTimeout [重复]
【发布时间】:2020-12-24 11:49:28
【问题描述】:

我对 javascript 很陌生,我希望在 2 秒后将 crickit.motor1.run(60) 设置为 0,但它不起作用,我有点想不出下一步该做什么. 这是我的代码

forever(function() {
  if (crickit.touch1.touchRead() > 400) {
    light.setPixelColor(0, 0x00ffff)
    crickit.motor1.run(60);
  }

  pause(100)
})

function motorOff() {
  crickit.motor1.run(0);
}

forever(function() {
  if (crickit.motor1.run() = 60)
    setTimeout(motorOff() {

    }, 2000);
})

【问题讨论】:

  • 不要调用motorOff函数,只要把函数名传给setTimeout --> setTimeout(motorOff, 2000);
  • crickit.motor1.run() = 60 应该使用===== 进行比较。单数= 用于分配

标签: javascript settimeout


【解决方案1】:

这些将起作用:

setTimeout( motorOff, 2000);

setTimeout( 'motorOff()', 2000);

setTimeout( function() { motorOff() }, 2000);

【讨论】:

  • 它仍然说我在这部分的某个地方犯了一个错误:forever(function () { if (crikit.motor1.run() == 60) setTimeout(function () { motorOff() } , 2000); }) 我不知道那会是什么
  • @Snain 没有错误信息?
  • 如果没有{}应该有if () {line1 line2},JS只在if添加第一行
【解决方案2】:

你必须像这样使用它: setTimeout(motorOff, 2000);
如果您有一个使用参数的函数,假设 motorOff(param) 将接受 1 个参数,您必须像这样使用它:
setTimeout(motorOff, 2000, param);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2019-06-10
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多