一旦触发,节点进程不会退出

时间:2019-01-20 17:18:56

标签: javascript node.js events event-loop

以下代码应回写用户输入的所有内容:

import csv

item = 'ambala' #for demonstration purpose, get it like you did before

with open('database.txt', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in spamreader:
        if item in row[2]:
            print(row[0] + ' ' + row[1])

确实如此,但是当我将process.stdin.on('data', blob => { process.stdout.write(blob) }) 更改为on时,我希望脚本只写回一行然后退出:

once

但是,它不会退出。再也没有发生任何事情,没有回写任何行,但是脚本继续运行。

documentation of once中,由于文档指出,我希望它会退出:

  

下次触发process.stdin.once('data', blob => { process.stdout.write(blob) }) 时,将删除此侦听器,然后调用它。

这是否意味着事件循环队列为空?


node process doesn't exit after firebase once似乎相关,但是现在可以接受的答案是:

  

请注意,这不再适用。使用一次()时,Node.js将不再挂起,尽管只要有活动的侦听器订阅了远程服务器,Node.js就会保持打开状态。

这里似乎不是这种情况。

0 个答案:

没有答案