javascript - 脚本不打印到console.log

标签 javascript node.js node-commander

我正在尝试按照说明 here 进行操作创建一个每 5 分钟打印一些内容的脚本。但它不起作用:当我使用 node script.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);
        });
    };

最佳答案

这个脚本实际上让你每秒做一些事情。

使用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()
}

关于javascript - 脚本不打印到console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56954136/

相关文章:

javascript - cfcontent 调用顺序令人困惑

javascript - 带有嵌套流的 flatMapConcat

node.js - 强制要求检查模块的当前目录

javascript - 不明白 Javascript 在这段代码中是如何工作的(在 Node.js 中使用 Coffeescript、Commander)

node.js - Node 的 bcrypt 比较返回假,虽然它是真的

node.js - 通过使用 `co` 包装回调来使回调异步的正确方法?

javascript - 在 React 中定义空 dom 元素的正确方法

javascript - 在我们的组件主体外部声明函数之间有什么区别吗?

java - selenium webdriver 获取表中的可见行号

javascript - 如何更改 winston 日志格式?