ForgeTotal.js 5
el

Total.js 5

Αποσύζευξη του κώδικα με events

Total.js 5 · total5@0.0.19 eventsarchitecture Εκτελέστηκε με το Total.js 5

Το ON(name, fn) καταχωρίζει έναν ακροατή, το EMIT(name, a, b, c...) καλεί κάθε ακροατή με τα δοθέντα ορίσματα, το ONCE(name, fn) ακούει μόνο το πρώτο emit και το OFF(name, fn) αφαιρεί ακροατές. Τα events είναι εντός διεργασίας και σύγχρονα. Χρησιμοποιήστε τα για να αντιδρά μια λειτουργία σε κάτι (μια παραγγελία πληρώθηκε) χωρίς να τη γνωρίζει ο κώδικας που το προκαλεί.

definitions/audit.js
MAIN.audit = [];

ON('order.paid', function(order) {
	MAIN.audit.push('paid ' + order.id);
});

ONCE('order.first', function(order) {
	MAIN.audit.push('first ' + order.id);
});
controllers/orders.js
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);
}