簡體   English   中英

腳本未打印到console.log

[英]Script not printing to console.log

我試圖按照此處的說明創建一個腳本,每5分鍾打印一次。 但是它不起作用:當我使用node scripts.js alive調用它時,它沒有任何輸出,只是在終端中打開了新行。 我究竟做錯了什么?

const program = require('commander');

program.command('alive').action(async function() {

    console.log("testttt");

    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    };

    for (let i = 0; i <= 36; i++) {
        await sleep(300000);
        console.log(i);
    };

    process.exit(0);
});

我也嘗試過,結果相同:

    for (let i = 0; i <= 36; i++) {
        await sleep(300000).then(async function(response) {
            console.log(i);
        });
    };

Commander文檔建議,為了執行命令,您需要在末尾添加以下行:

program.parse(process.argv);

實際上,此腳本可讓您每秒鍾執行一些操作。

使用node script.js運行它

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms))
}

async function func() {
    console.log('func')
    await sleep(1000)
    func()
}

func()

更新 -按照指揮官的要求工作

使用./script.js -t運行它

#!/usr/bin/env node

const program = require('commander')

program.option('-t, --tick', 'start the ticker')
program.parse(process.argv)

if (program.tick) {
    console.log('program.ticker started')
    ticker()
}

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms))
}

async function ticker() {
    for (let i = 0; i <= 5; i++) {
        await sleep(1000)
        console.log(`tick ${i}`)
    }
    process.exit()
}

嘿,這里的問題是你如何使用指揮官。 如您在這里看到的我將其刪除,並且可以正常工作。 檢查指揮官的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM