# SyncChannel A SyncChannel is a readable/writable communication channel. Communication is synchronous, i.e. the callback of a write gets called only when it's value has been read. Reading/writing from/to a SyncChannel can be aborted by calling the abort function returned by the read/write methods. ## Installation ``` $ npm install sync-channel ``` # Examples ## read/write ``` js var SyncChannel = require('sync-channel'); var channel = new SyncChannel(); channel.read(function(value) { console.log('value read', value); }); channel.write(123, function() { console.log('value written'); }); ``` ## Aborting a read/write operation ``` js var SyncChannel = require('sync-channel'); var channel = new SyncChannel(); var abortRead = channel.read(function(value) { console.log('value read', value); }); setTimeout(function() { abortRead(); console.log('you are so slow!'); }, 500); setTimeout(function() { channel.write(123, function() { console.log('value written'); }); }, 1000); ``` ## tryRead ``` js var SyncChannel = require('sync-channel'); var channel = new SyncChannel(); var result = channel.tryRead(); if(result !== null) { console.log('value read', result.value); } else { console.log('no writers'); } ``` ## tryWrite ``` js var SyncChannel = require('sync-channel'); var channel = new SyncChannel(); var result = channel.tryWrite(123); if(result === true) { console.log('value written'); } else { console.log('no readers'); } ```