На сервере есть некоторое api запросы к которому должны уходить последовательно(отправили запрос -> получили ответ, только затем отправляем следующий), на клиенте есть несколько мест в которых уходят запросы на этот api и тут же ждут ответ от сервера. Сейчас я сделал контроллер через который идут запросы на этот сервер:
public send<T>(request: IParams): Promise<T> {
const promise = new Promise((resolve, reject) => {
this._queue.push({ request, resolve, reject });
this.sendNext();
});
return promise as Promise<T>;
}
В методе sendNext, проверяем что другой запрос не в процессе, достаем следующий запрос из очереди, когда получили ответ вызываем resolve, либо reject у promise. Насколько такой подход корректен? и можно ли лучше?