如何在Node Js中的事件之间等待?

时间:2019-04-17 17:54:07

标签: javascript node.js dom-events

我尝试使用NodeJ在每个事件“更改”之间放置一个时间间隔

我尝试使用setTimeout(),但这没用,因为要等待时间并同时处理所有文件。

fs.watch('Desktop/folder', function(event, filename){
  if (event == 'Change'){
    // sleep(10);
    console.log('processing...')
    process(filename);
)}})

我做错了什么?

预期结果:

(将5个文件放在“桌面/文件夹”中)

> processing...
(wait 10 seconds)
> processing...
(wait 10 seconds)
> processing...
(wait 10 seconds)
> processing...
(wait 10 seconds)
> processing...
(wait 10 seconds)

实际结果:

(将5个文件放在“桌面/文件夹”中)

(wait 10 seconds)
> processing...
> processing...
> processing...
> processing...
> processing...

2 个答案:

答案 0 :(得分:0)

实际上,使用setTimeout()是正确的。这将在“更改”事件发生后10毫秒执行到处理方法。但是,您可能需要在setTimeout()方法中包含console.log语句,以便查看所需的输出。

fs.watch('Desktop/folder', function(event, filename){
  if (event == 'Change'){
    setTimeout(() => {
        console.log('processing...')
        process(filename);
    }, 10000)
)}})

答案 1 :(得分:0)

您需要使用setInterval来处理间隔。您可以详细了解here

fs.watch('Desktop/folder', function(event, filename){
if (event == 'Change'){
setInterval(() => {
    console.log('processing...')
    process(filename);
}, 10000)
)}})