Я выполняю поиск в текстовом поле, и когда я набираю текст, происходит вызов, идущий на сервер после, скажем, 100 мс.
Например, если мы ищем «5041» и сразу ищем «50»и снова сделайте его "5041", тогда к бэкэнду будет сделано 3 вызова.
1."5041" -> Promise 1
2."50" -> Promise 2
3."5041" -> Promise 3
Однако обещание 3 (веб-вызов занимает 200 мс) разрешается до того, как обещание 2 (веб-вызов занимает 500 мс), которое делаетна экране отображаются результаты для обещания 2 («50»), когда все, что у меня есть в текстовом поле, - «5041».
Мне нужен какой-то способ, позволяющий пользователю печатать текстовое поле без блокировки пользователя, а также возможность показатьрезультаты только для последнего вызова.
Этого можно добиться, используя switchMap
из rxjs в угловом приложении.Однако мне нужен способ добиться того же в ванильном JS.