-
Notifications
You must be signed in to change notification settings - Fork 7
Signal
廖健 edited this page Jun 18, 2013
·
4 revisions
Qt利用信号与槽(signals/slots)机制取代传统的callback来进行对象之间的沟通,JPE Signal也是按照这个思想来做的。
监听一个信号
var Signal = require("JPE/Signal");
var signal = new Signal();
var listener = function(signal){
console.log("signal received: " + signal);
}
signal.add(listener);
signal.dispatch(signal);
移除信号监听
var Signal = require("JPE/Signal");
var signal = new Signal();
var listener = function(){
signal.remove(listener);
}
signal.add(listener);
signal.dispatch();
移除所有信号监听
var Signal = require("JPE/Signal");
var signal = new Signal();
var listener = function(){
signal.removeAll();
}
signal.add(listener);
signal.dispatch();
只监听一次并自动移除的信号
//"signal received"只会输出一次
var Signal = require("JPE/Signal");
var signal = new Signal();
var listener = function(){
console.log("signal received");
signal.dispatch();
}
signal.addOnce(listener);
signal.addOnce(listener);
signal.dispatch();
信号发送时携带参数
var signal = new JPE.Signal();
var listener = function(p1, p2){
console.log("[param1]: " + p1 + " [param2]:" + p2);
}
signal.add(listener);
signal.dispatch("hello", "signal");