Вы должны избегать использования функции debounce, предоставляемой Lodash, при работе с обещаниями, так как она не различает синхронизирующую и асинхронную функции и работает так, как если бы функция, которую вы передавали, была синхронной.Таким образом, он не ждет, пока обещание будет решено или отклонено и сразу же возвращается.Это означает, что время, потраченное, скажем, на запрос ajax, не учитывается во время выполнения функции, и в случае сетевой задержки ответы могут приходить в другом порядке.
Я предлагаю забрать awesome-debounce-обещание на npm.