Мое требование - каждые 10 секунд, нужно выбирать данные из Back-end и обновлять свойства для списка ввода. Кроме того, запрос должен поразить серверную часть один за другим. Я искал в net и обнаружил, что планировщик очереди будет полезен для этого. (Дайте мне знать, если мое понимание неверно). Поэтому я создал следующий код:
- Начальный интервал для каждых 10 секунд
private initializeInterval() {
interval(10000).subscribe(x => {
this.queueItems();
});
}
Создание планировщика очереди:
private queueItems() {
let taskEntry: = ['111','2222','333']
console.log("Started adding item in queue");
taskEntry.forEach(item => {
queue.schedule(this.retrieveData.bind(this), 100, item);
})
console.log("Completed adding item in queue");
}
Извлечение данных из бэкэнда
private async retrieveData(item) {
console.log("Starting");
let result = await this.rest.downloadPrope(item);
console.log(result)
console.log("Completed");
}
Я ожидаю, что QueueScheduler вызовет retrieveData после завершения предыдущего запроса ... Но все запросы одновременно попадают в retrieveData.
Мой вывод is:
Началось добавление элемента в очередь
Завершено добавление элемента в очередь
Начало (3 раза) (Перед выполнением, следующий запрос был получен из очередь)
Началось добавление элемента в очередь
Завершено добавление элемента в очередь
Запуск (3 раза)
завершено ( 3 раза)
выполнено (3 раза)
Подскажите, пожалуйста, в чем проблема?