У меня есть класс OrderServer, где я вызываю сервис OrderService, который подключается к БД и извлекает данные.Сбор данных происходит каждые 1 минуту.OrderServer использует SocketIO для связи с веб-приложением.код выглядит следующим образом:
export class OrderServer {
// some required fields
constructor() {
console.log("in OrderServer Constructor...");
this._orderService = new OrderService();
// some other initiations and calls
this.listen();
}
private listen(): void {
this.server.listen(this.port, () => {
});
this.io.on('connect', (socket: socketIo.Socket) => {
setInterval( () => {
let orders : Order[] = this._orderService.getNewNProcessingOrders();
console.log("Orders : " + orders);
},60000);});}}
У меня также есть код OrderService, но я не помещаю его здесь, так как он сейчас не требуется.Если понадобится, я его поставлю.
Проблема в том, что есть один оператор журнала консоли в getNewNProcessingOrders () .Если вы заметили, что есть метод console.log после вызова getNewNProcessingOrders () в методе listen.
Я ожидаю, что сначала должен выполняться оператор журнала консоли в методе getNewNProcessingOrders (), а затем - запись журнала консоли в listen (), но наоборот.
Почему this._orderService.getNewNProcessingOrders ();не блокирует?Я попытался найти документацию, но не смог найти конкретную для этой проблемы, где вызовы метода службы не являются блокируемыми.