diff options
Diffstat (limited to 'atom/packages/vim-mode/node_modules/event-kit/README.md')
| -rw-r--r-- | atom/packages/vim-mode/node_modules/event-kit/README.md | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/atom/packages/vim-mode/node_modules/event-kit/README.md b/atom/packages/vim-mode/node_modules/event-kit/README.md deleted file mode 100644 index 0dc343d..0000000 --- a/atom/packages/vim-mode/node_modules/event-kit/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# event-kit - -This is a simple library for implementing event subscription APIs. - -## Implementing Event Subscription APIs - -```coffee -{Emitter} = require 'event-kit' - -class User - constructor: -> - @emitter = new Emitter - - onDidChangeName: (callback) -> - @emitter.on 'did-change-name', callback - - setName: (name) -> - if name isnt @name - @name = name - @emitter.emit 'did-change-name', name - @name - - destroy: -> - @emitter.dispose() -``` - -In the example above, we implement `::onDidChangeName` on the user object, which -will register callbacks to be invoked whenever the user's name changes. To do -so, we make use of an internal `Emitter` instance. We use `::on` to subscribe -the given callback in `::onDidChangeName`, and `::emit` in `::setName` to notify -subscribers. Finally, when the `User` instance is destroyed we call `::dispose` -on the emitter to unsubscribe all subscribers. - -## Consuming Event Subscription APIs - -`Emitter::on` returns a `Disposable` instance, which has a `::dispose` method. -To unsubscribe, simply call dispose on the returned object. - -```coffee -subscription = user.onDidChangeName (name) -> console.log("My name is #{name}") -# Later, to unsubscribe... -subscription.dispose() -``` - -You can also use `CompositeDisposable` to combine disposable instances together. - -```coffee -{CompositeDisposable} = require 'event-kit' - -subscriptions = new CompositeDisposable -subscriptions.add user1.onDidChangeName (name) -> console.log("User 1: #{name}") -subscriptions.add user2.onDidChangeName (name) -> console.log("User 2: #{name}") - -# Later, to unsubscribe from *both*... -subscriptions.dispose() -``` - -## Creating Your Own Disposables - -Disposables are convenient ways to represent a resource you will no longer -need at some point. You can instantiate a disposable with an action to take when -no longer needed. - -```coffee -{Disposable} = require 'event-kit' - -disposable = new Disposable => @destroyResource() -``` |