The close() method of the SharedWorkerGlobalScope interface discards any tasks queued in the SharedWorkerGlobalScope's event loop, effectively closing this particular scope.




If you want to close your worker instance from inside the worker itself, you can call the following:


close() and self.close() are effectively equivalent — both represent close() being called from inside the worker's inner scope.

Note: There is also a way to stop the worker from the main thread: the Worker.terminate method.


Specification Status Comment
HTML Living Standard
The definition of 'close()' in that specification.
Living Standard

Browser compatibility

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
closeChrome No support NoEdge No support NoFirefox Full support 54IE No support NoOpera No support NoSafari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 54Opera Android No support NoSafari iOS ? Samsung Internet Android No support No


Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown

General note: In newer browser versions, close() is available on SharedWorkerGlobalScope and DedicatedWorkerGlobalScope. In older browser versions, it is available on WorkerGlobalScope. This change was made to stop close() being available on service workers, as it isn't supposed to be used there and always throws an exception when called (see bug 1336043).

See also