こんにちは、@yoheiMuneです。 今日はNodeJSやフロントJSで利用可能な、EventEmitterを使った、イベント駆動な実装方法をブログに書きたいと思います。 目次 本記事を試すための環境 この記事の内容は、nodejsで動作します。新し目のバージョンでお試しください(僕の環境ではv6.2.2で動作確認しています)。 また、BabelでフロントエンドビルドやWebpackでフロントエンドビルドを使えば、フロントエンドでもEventEmitterを利用可能です(いくつかのプロジェクトで利用されているのを見かけたことがあります)。 EventEmitterとは EventEmitterは直訳の通り、イベントを発火することができる機能で、主に「イベントを発火する人」と「イベントを受け取る人」の大きく2つに使い方が分かれます。具体的には、 イベントを発火する人 関数名 説明 という感
var util = require("util"); var EventEmitter = require("events").EventEmitter; function MyClass() { EventEmitter.call(this); } util.inherits(MyClass, EventEmitter); MyClass.prototype.doSomething = function(data) { this.emit("doSomething", data); } var EventEmitter = require("events").EventEmitter; function MyClass() { EventEmitter.call(this); } MyClass.prototype = Object.create(EventEmitter.protot
フロントエンドにおいて、それなりに普遍的な問題な気もするんだけど、 例えば、何かDOMと紐づくクラスを作ると、 どうしても親子関係を持たせたくなって class ParentUnit extends EventEmitter constructor: -> @childUnit = new ChildUnit render: -> """<div>#{@childUnit.render()}</div>""" class ChildUnit extends EventEmitter constructor: -> someHandler: (e) -> @emit "childevent", e render: -> "<p>child unit</p>" parentUnit = new ParentUnit parentUnit.on "childevent", -> # こうしたい
Code Review is a series on DailyJS where I take a look at an open source project to see how it’s built. Along the way we’ll learn patterns and techniques by JavaScript masters. If you’re looking for tips to write better apps, or just want to see how they’re structured in established projects, then this is the tutorial series for you. After a previous Code Review of EventEmitter2 by hij1nx in Code
[修正] コメントで指摘されたように、回答4の訳が間違っていたので訂正しました。 Node の ML に以下のような質問が投稿されました。 What is the meaning of require('events').EventEmitter.call(this) 内容としては。 「以下のようなコードがあったんだけど、これってどういう意味?」 var util = require("util"); var events = require("events"); function MyStream() { // ここの意味がよくわからん、これは `new MyStream` と同じに見えるんだけど違うの? events.EventEmitter.call(this); } util.inherits(MyStream, events.EventEmitter); var steam =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く