如何异步执行中继突变?

时间:2016-01-04 22:20:20

标签: reactjs relayjs

我有一个中继突变,将一些数据发布到我的服务器。我的应用程序不应该在继续之前等待响应。

我知道我可以使用以下内容执行任意查询:

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];

    ...
  }

如果我的应用程序没有等待响应,我如何异步启动突变?

1 个答案:

答案 0 :(得分:0)

在设计胖查询时,请考虑因突变而可能更改的所有数据 - 而不仅仅是应用程序当前使用的数据。我们不需要担心过度获取;如果没有首先将它与我们的应用程序实际需要的数据的“跟踪查询”相交,则永远不会执行此查询。如果我们省略fat查询中的字段,那么当我们添加具有新数据依赖性的视图或向现有视图添加新数据依赖项时,我们可能会在将来发现数据不一致。