Я пытаюсь создать асинхронную задачу в Nest Js. Я хочу, чтобы после того, как был сделан один запрос к какому-либо контроллеру, моя задача asyn c запускала вашу долгую работу, пока l oop, а затем процесс node / nest мог отвечать на другие запросы других контроллеров.
Но когда начинается asyn c l oop, все остальные конечные точки Nest зависают до тех пор, пока не будет выполнена задача asyn c.
Я уже пытался использовать setTimeout()
, setInterval()
, setIntermmediate()
, queueMicrotask()
и Promise.resolve()
Мой код:
// Async task:
private checkTime(baseTime: number, startTimeStamp: number){
while(true){
const elapsedTime = Date.now() - startTimeStamp
console.log(`Elapsed time: ${elapsedTime}`)
if(elapsedTime > baseTime){
console.log(`Time excced!`)
break;
}
}
}
А я уже пробую что-то вроде этого:
queueMicrotask(() => this.checkTime(edge.baseTime, startedTimeStamp))
setTimeout(() => this.checkTime(edge.baseTime, startedTimeStamp), 0)