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

问题描述 投票:0回答:2

我尝试使用NodeJs在每个事件'更改'之间设置一个时间间隔

我尝试使用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...
javascript node.js dom-events
2个回答
0
投票

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

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

0
投票

你需要使用setInterval来处理Intervals。你可以阅读更多关于它here

fs.watch('Desktop/folder', function(event, filename){
if (event == 'Change'){
setInterval(() => {
    console.log('processing...')
    process(filename);
}, 10000)
)}})
© www.soinside.com 2019 - 2024. All rights reserved.