Отправка запроса apollo вне партии - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть интерфейс Apollo с пакетными запросами .Однако существуют определенные запросы, которые не следует включать в пакет:

  • Компонент зависит от «малой» версии запроса на загрузку
  • «Полный» запрос долженпроизойдет в то же время, чтобы быть введенным в кэш для последующего использования
  • Если маленький и полный запрос отправляются в одном пакете, он не возвращается до тех пор, пока полный запрос не будет завершен, что занимает слишком много времени.

Я подумал о двух неидеальных решениях:

  • Запустите полный запрос после завершения малого, используя onCompleted.Не идеально, потому что для скорости я хотел бы запустить два одновременно
  • Установить две конечные точки бэкэнда, одну с пакетной обработкой и одну без, и использовать split для направления запросов, где это необходимо.Работало бы, но я хотел бы уйти без дополнительной конечной точки

Любые идеи?

РЕДАКТИРОВАТЬ: я понял, что первое решение не годится, потому что оно может вызвать другиенесвязанные запросы, которые нужно отложить, поэтому пока единственное решение - последнее решение.

1 Ответ

0 голосов
/ 16 сентября 2018

Я не специалист по данной теме, но, похоже, опция batchKey в apllo-link-batch-http - это то, что вы ищете.Проще всего было бы, например, префикс ваших операций с ключевым словом:

const link = BatchHttpLink({
  batchKey: operation =>
    operation.name && operation.name.value.startsWith('eager_') ? 'eager' : 'normal'
});
...