Я боролся с этой проблемой пару часов, поэтому я решил попросить вас о помощи.Вот мой код nodejs:
var SSE = require('sse-nodejs');
var express = require('express');
var app = express();
var httpsServer = require('https').createServer();
var fs = require('fs');
app.get('/berskik/sse/notification/:usrDir', function (req,res) {
res.setHeader('Access-Control-Allow-Origin', '*');
var app = SSE(res);
var path = "../static/resources/users_files/" + req.params["usrDir"];
var fileName = "";
fileName = waitAndReturnUploadedFileName(path);
sendEvent(app, fileName, res);
});
app.listen(4650, function () {
console.log('Notification SSE Server has succesfully started at port 4650.');
});
function msleep(n) {
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, n);
}
function readDir(path){
return fs.readdirSync(path);
}
function sendEvent(app, fileName, res){
console.log("Sending notification.");
app.send({"notify": fileName});
console.log("Notification has been sent.");
}
function waitAndReturnUploadedFileName(path) {
var newFile = "";
var breakFlag = false;
var oldItems = readDir(path);
while(!breakFlag){
var items = readDir(path);
console.log(items.length + " " + oldItems.length);
if(items.length > oldItems.length){
for(var i = 0; i < items.length; i++){
console.log(!oldItems.includes(items[i]));
if(!oldItems.includes(items[i])){
newFile = items[i];
breakFlag = true;
}
}
}
oldItems = items;
msleep(1800);
}
console.log("New file has been found.");
return newFile
}
И моя проблема в том, что когда я комментирую или удаляю
fileName = waitAndReturnUploadedFileName(path);
, которая на самом деле является целой логической функцией, app.send () работает отлично,но когда у меня есть эта функция в моем коде, то ничего не отправляется, даже если все другие функции (включая console.log ()) выполняются.
Я буду признателен за каждый ответ.