javascript - Node Js中的事件之间如何等待?
问题描述
我尝试使用 NodeJs 在每个事件“更改”之间设置时间间隔
我尝试使用 asetTimeout()
但这不起作用,因为等待时间并同时处理所有文件。
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...
解决方案
实际上,使用 setTimeout() 是正确的。这将在“更改”事件发生后 10 毫秒执行到 process 方法。但是,您可能需要在 setTimeout() 方法中包含 console.log 语句才能看到所需的输出。
fs.watch('Desktop/folder', function(event, filename){
if (event == 'Change'){
setTimeout(() => {
console.log('processing...')
process(filename);
}, 10000)
)}})
推荐阅读
- php - run php inside website uploaded from user
- node.js - 以编程方式编辑 unix 主机文件
- azure - Unable to find entities from table storage after inserting batches of 100
- javascript - React-Native 中的 ':' 是什么意思?
- c++ - decltype of function parameter inside nested lambda fails to compile
- ios - unwind segue not working-- using action method
- php - 为什么有时我没有收到 2captcha API 的响应?
- sql - Postgresql 查询以提取日期戳字段中不同年份的 365 个读数的记录
- javascript - Instagram 链接打开应用内浏览器而不是外部/本机浏览器
- php - PHP 按两个条件对数组进行排序