循环运行一段时间后,节点js应用程序停止运行

时间:2018-12-17 00:51:46

标签: javascript node.js plotly

我正在尝试运行一些代码来每分钟更新一次绘图,但是当我使用节点js运行它时,它会在一段时间后停止,并且不会更新我的帐户,这是我的代码(不包括我的绘图)帐户初始化,其中包含我的密谋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 :(得分:1)

当然会停止。

您在send()run()中有两种方法。

首先,调用run()方法,然后run()方法调用send()方法。在send()方法的末尾,再次调用run()方法。

它的工作方式类似于

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

因此,您的应用程序最终达到最大堆栈大小并停止。

答案 1 :(得分:1)

设置60秒钟的超时时间以再次调用run

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

    setTimeout(() => {
       run()
    }, 60e3)
}