Как я могу остановить подписку в GraphQL? - PullRequest
1 голос
/ 01 июля 2019

Вот кусок кода , который меня интересует (он взят из каталога /examples/):

  Subscription: {
    counter: {
      subscribe: (parent, args, { pubsub }) => {
        const channel = Math.random().toString(36).substring(2, 15) // random channel name
        let count = 0
        // added var refreshIntervalId = 
        var refreshIntervalId = setInterval(() => pubsub.publish(channel, { counter: { count: count++ } }), 2000) // <----
        return pubsub.asyncIterator(channel)
      },
      // my new changes that hopefully will work
      onDisconnect: (webSocket, context) => {
          clearInterval(refreshIntervalId);
      } 
    }

Я немного обеспокоен тем, как лучше (какмогу ли я передать refreshIntervalId между subscribe() и onDisconnect() до , чтобы остановить интервал после закрытия соединения.

Обновление : я понял, что должен вставить onDisconnect по выбору сервера (не в блоке резолвера), так что я, вероятно, думаю, что мне вообще не стоит об этом беспокоиться (по умолчанию он должен обрабатывать отключение).

...