Decuplarea codului cu evenimente
ON(name, fn) înregistrează un ascultător, EMIT(name, a, b, c...) apelează fiecare ascultător cu argumentele date, ONCE(name, fn) ascultă doar primul emit, iar OFF(name, fn) elimină ascultători. Evenimentele sunt în interiorul procesului și sincrone. Folosește-le ca o funcționalitate să reacționeze la ceva (o comandă a fost plătită) fără ca partea de cod care o declanșează să știe de ea.
MAIN.audit = [];
ON('order.paid', function(order) {
MAIN.audit.push('paid ' + order.id);
});
ONCE('order.first', function(order) {
MAIN.audit.push('first ' + order.id);
});exports.install = function() {
ROUTE('POST /pay/{id}/', pay);
ROUTE('GET /audit/', audit);
};
function pay($) {
var order = { id: $.params.id };
EMIT('order.first', order);
EMIT('order.paid', order);
$.json({ ok: true });
}
function audit($) {
$.json(MAIN.audit);
}