2016-01-04 4 views
0

У меня есть мутация реле, которая отправляет некоторые данные на мой сервер. Мое приложение не должно дожидаться ответа, прежде чем продолжить.Как выполнить мутацию реле асинхронно?

Я знаю, что могу выполнить произвольные запросы со следующим:

const query = Relay.createQuery(Relay.QL` 
    query { 
    viewer { 
     searchInterests(prefix: $prefix, first: 10) { 
     edges { 
      node { 
      id 
      name 
      } 
     } 
     } 
    }, 
    } 
`, {prefix: input}); 

Relay.Store.primeCache({query}, readyState => { 
    if (readyState.done) { 
    // When all data is ready, read the data from the cache: 
    const data = Relay.Store.readQuery(query)[0]; 

    ... 
    } 

Как я могу выстрелить мутации асинхронно без мое приложение ждет ответа?

+0

На самом деле мне просто нужно определить оптимистичный ответ в соответствии с документами: https://facebook.github.io/relay/docs/api-reference-relay-mutation.html#getoptimisticresponse – jbrown

ответ

0

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

+0

Данные не будут изменены клиент, вот в чем смысл. Я просто хочу запустить мутацию сервера. Можете ли вы рассказать о том, как ваш ответ уместен? Я не вижу связи ... – jbrown

Смежные вопросы