Skip to content

Public abort method #15

@betonetotbo

Description

@betonetotbo

I just added the abort method on the returned object of oboeWrapper.
This is useful to abort the streaming.

function oboeWrapper(params) {
    var stream = oboe(params);
    var singleArgMethods = ['start', 'done', 'fail'];
    var on = function (event, pattern, callback) {
        var wrappedCallback = function () {
            var args = arguments;

            return $rootScope.$evalAsync(function () {
                return callback.apply(stream, args);
            });
        };

        return singleArgMethods.indexOf(event) >= 0 ? stream.on(event, wrappedCallback)
            : stream.on(event, pattern, wrappedCallback);
    };

    return {
        start: function (callback) {
            return on('start', null, callback);
        },
        node: function (pattern, callback) {
            return on('node', pattern, callback);
        },
        path: function (pattern, callback) {
            return on('path', pattern, callback);
        },
        success: function (callback) {
            return on('done', null, callback);
        },
        done: function (callback) {
            return on('done', null, callback);
        },
        error: function (callback) {
            return on('fail', null, callback);
        },
        fail: function (callback) {
            return on('fail', null, callback);
        },
        abort: function() {
            stream.abort();
        }
    };
}

To use it:

angular.module('app', ['ng-oboe']).controller('controller', function($scope) {
    $scope.stream;
    $scope.init = () => $scope.stream = oboe.get('/my-stream').node('!.*', (node) => console.log(node));
    $scope.close = () => $scope.stream.abort();
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions