Приложение Node.js останавливается после некоторого запуска цикла - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь запустить какой-то код для обновления графического графика каждую минуту, но когда я запускаю его с помощью Node.js, он останавливается через некоторое время и не обновляет мою учетную запись.Вот мой код (не включая мою учетную запись init, которая имеет мой API-ключ)

let n = 0
let start = Date.now()
let timer = Date.now() - timestart
var timestart = Date.now()

let arr = [1, 5, 4, 3, 6]
let ar = [2, 2, 3, 5, 7]
let data = [{
    x: arr,
    y: ar,
    type: 'line'
}]
let layout = {
    fileopt: "overwrite",
    filename: "prime size overtime"
}


function run() {
    console.log('test')
    while (timer < 60000) {
        n += 1
        console.log(n)
        timer = Date.now() - timestart
        ar.push(n)
        arr.push(Date.now() - start)
        data = [{
            x: arr,
            y: ar,
            type: 'line'
        }]
    }
    send()
}

function send() {
    plotly.plot(data, layout, function(err, msg) {
        if (err) return console.log(err);
        console.log(msg);
    });
    run()
}
run()

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Установите тайм-аут на 60 секунд, чтобы снова вызвать run:

function send() {
    plotly.plot(data, layout, function(err, msg) {
        // ...
    })

    setTimeout(() => {
       run()
    }, 60e3)
}
0 голосов
/ 17 декабря 2018

Конечно, он остановится.

У вас есть два метода: send() и run().

Сначала вызывается метод run(), а затемМетод run() вызывает метод send().В конце метода send() метод run() вызывается снова.

Он работает следующим образом:

run() -> send() -> run() -> send() ......

Итак, ваше приложение в итоге достигло максимального размера стека иостановился.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...