首页 > 解决方案 > 如何将 console.log 用于自定义功能?

问题描述

您好以下是我的代码:

const tst = require("trucksim-telemetry")

const telemetry = tst()

function update(data) {
  console.log('Speed Limit:',data.navigation.speedLimit)
  console.log('Speed:',data.truck.speed)
  console.log('Controls:',data.controls.input)
  console.log('ADAS:',data.truck.cruiseControl.enabled)
}

telemetry.watch({interval: 12}, update)

我可以将function update(data)成功的所有内容记录到txt文件中,但我也想记录

telemetry.watch({interval: 12}, update)

例如它向我显示时间(毫秒):0 12 24 等等,直到我关闭脚本。我尝试使用setinterval函数,但它有时会多次记录一个间隔。对不起,如果我的问题含糊不清,我是 javascript* 的新手。

标签: javascriptnode.js

解决方案


您可以尝试从开始运行脚本开始捕获时间,并在update()每次调用它时从该值中减去:

const now = new Date() // capture start time
const telemetry = tst()

function update(data) {
  console.log('Time (ms):', new Date() - now) // time elapsed in ms
  console.log('Speed Limit:',data.navigation.speedLimit)
  console.log('Speed:',data.truck.speed)
  console.log('Controls:',data.controls.input)
  console.log('ADAS:',data.truck.cruiseControl.enabled)
}

telemetry.watch({interval: 12}, update)

或者,如果您尝试使用 12 的倍数进行绘图,则可以添加一个计数器并将其乘以 12ms

let counter = 0
const telemetry = tst()

function update(data) {
  counter++
  console.log('Time (ms):', counter*12) // difference is in ms
  console.log('Speed Limit:',data.navigation.speedLimit)
  console.log('Speed:',data.truck.speed)
  console.log('Controls:',data.controls.input)
  console.log('ADAS:',data.truck.cruiseControl.enabled)
}

telemetry.watch({interval: 12}, update)


推荐阅读