rx-winjs
Version:
Library for composing asynchronous and event-based operations in JavaScript extending the Windows WinJS library
26 lines (21 loc) • 1.01 kB
JavaScript
/**
* Creates a wrapper for listening to WinJS sensor's events.
* @param {Object} sensor The WinJS sensor to attach the event listener.
* @param {String} eventName The event name to listen for.
* @returns {Observable} An observable sequence wrapping the Sensor's given event event.
*/
var fromSensorEvent = Rx.WinJS.fromSensorEvent = function (sensor, eventName) {
return observableCreateWithDisposable(function (observer) {
if (!sensor) {
observer.onError('Sensor not supported');
return disposableEmpty;
}
function handler(eventData) {
observer.onNext(eventData);
}
sensor.addEventListener(sensor, eventName, false);
return disposableCreate(function () {
sensor.removeEventListener(sensor, eventName, false);
});
}).publish().refCount();
};