# Smart Subscription
Each subscription declared in the apollo.$subscribe option in a component results in the creation of a smart subscription object.
# Options
query: GraphQL document (can be a file or agqlstring).variables: Object or reactive function that returns an object. Each key will be mapped with a'$'in the GraphQL document, for examplefoowill become$foo.throttle: throttle variables updates (in ms).debounce: debounce variables updates (in ms).result(data, key)is a hook called when a result is receivederror(error)is a hook called when there are errors.erroris an Apollo error object with either agraphQLErrorsproperty or anetworkErrorproperty.skipis a boolean or a (reactive) function that returns a boolean. The function gets the current component and smart query key as arguments, so it can be used in$queryand inApolloProvider'sdefaultOptions.
# Properties
# Skip
You can pause or unpause with skip:
this.$apollo.subscriptions.users.skip = true
# Methods
# refresh
Stops and restarts the query:
this.$apollo.subscriptions.users.refresh()
# start
Starts the query:
this.$apollo.subscriptions.users.start()
# stop
Stops the query:
this.$apollo.subscriptions.users.stop()