Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apollo 乐观用户界面是否仅适用于观察查询?_Apollo_React Apollo_Apollo Client - Fatal编程技术网

Apollo 乐观用户界面是否仅适用于观察查询?

Apollo 乐观用户界面是否仅适用于观察查询?,apollo,react-apollo,apollo-client,Apollo,React Apollo,Apollo Client,乐观UI是否仅适用于watchQuery而不适用于订阅?我们正在广泛使用websocket上的订阅,无法使乐观UI正常工作,尽管它似乎在watchQuery上工作得很好 所以我的问题很简单,我只需要确认乐观用户界面是否应该与订阅一起工作?watchQuery用于订阅缓存的更新(Apollo通常将其称为“存储”),这与服务器不同。见阿波罗的笔记: 这将根据指定的选项监视查询的缓存存储,并返回ObservaleQuery。我们可以订阅这个ObserveryQuery,并在缓存存储更改时通过Graph

乐观UI是否仅适用于watchQuery而不适用于订阅?我们正在广泛使用websocket上的订阅,无法使乐观UI正常工作,尽管它似乎在watchQuery上工作得很好


所以我的问题很简单,我只需要确认乐观用户界面是否应该与订阅一起工作?

watchQuery用于订阅缓存的更新(Apollo通常将其称为“存储”),这与服务器不同。见阿波罗的笔记:

这将根据指定的选项监视查询的缓存存储,并返回ObservaleQuery。我们可以订阅这个ObserveryQuery,并在缓存存储更改时通过GraphQL观察程序接收更新的结果。请注意,此方法不是GraphQL订阅的实现。相反,它使用Apollo的store来对查询结果进行反应式更新

基于服务器的完整实现称为GraphQL订阅。订阅更新是客户端在任意时间接收的内容。他们来了,他们也来了。因为无法进行预测,所以订阅中没有乐观UI的用例。因此,它们不受支持。我能想到的唯一用例是客户端是否订阅了自己的更改。在这种情况下,您可以使用optimisticResponse和update选项来进行更新