Как перезапустить функцию модуля узла при возникновении ошибки - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь прочитать данные с периферийного устройства, но иногда возникают ошибки, даже когда я помещаю его в блок try / catch, что останавливает выполнение во время выполнения.

const ina219 = require('ina219')
const DELAY_MS = 15

try {
  let getVoltage = ina219.calibrate32V1A(() => {
    let int = setInterval(() => {
      ina219.getShuntVoltage_mV((volts) => {
        console.log(volts)
      })
    }, DELAY_MS)
  })
}
catch (error) {
  console.log(error)
  if(conditionIsMet) {
    // exit try-catch
  } else {
    getVoltage // restart getVoltage
  }
}

/ home/pi/Documents/node_modules/i2c-bus/i2c-bus.js:355 return i2c.readI2cBlockSync (периферийная синхронизация (this, addr), cmd, длина, буфер);
Ошибка: ошибка связи при отправке

Я хотел бы продолжать перезапуск, пока не будет выполнено условие.

Как я могу перехватить эту ошибку и перезапустить getVoltage при появлении ошибки?

...