Blockchain code Metaverse VR

SmartContract×VR×Crypto(632)

スポンサーリンク

//tips

//smart contract

Node.jsにて定義されている.on、.once、.offなどのevent処理について確認していく。

.onはEventEmitterというクラスからきており、イベントを発火する(emit)とセットで使用される。

対応したイベントの処理をする.onはイベントが発火するまで待ち、イベント発火が確認できたら実行されるもの。関数でも良さそうに感じるが、イベントの中身に、呼び出し元ごとに独自に実行関数をさせたいとなると親側の関数を直接呼び出すことは出来ない関数処理では行き詰まってしまう。

この問題を解決する手法として、EventEmitterが使われることになる。つまり、呼び出し元に依存した関数処理の実行を呼び出し先で行えるのがイベントとなる。

簡単なEventEmitterのコード例をみるとわかりやすい。

class myClass {
constructor(){
this.eventEmitter = new EventEmitter() //イベントエミッターを生成
}
start(msg) {
setInterval(() => {
this.event(msg)
}, 1000)
}
event(msg) {
console.log(msg)
this.eventEmitter.emit('event') //emitでイベントを発火
}
}

const test = new myClass()
const event = test.eventEmitter //イベントエミッターをもらう
test.start('Hello')

event.on('event',()=>{ //onで発火したイベントを受け取る
console.log(new Date()) //ここに自由に追加の処理を書く
})

他にもこのようなものもある。

eventEmitter.on('setting', (obj, version) => {
console.log('name: ' + obj.name + ' message: ' + obj.message);
console.log('This version is ' + version);
});

eventEmitter.emit('setting', {name: 'event setting', message: 'Hello!!'}, '1.3.4');

.onceは一度だけ呼び出される.onでだと思っておけばよく、このメソッドを使って登録された listener は、1 度実行されたら、2 回目以降の event の発火では無視される。

リスナーの追加と削除はaddListenerとremoveListenerメソッド。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.