function handleOnce(funct) {
    var flag = false;

    return function(e) {
        if (flag) return;
        flag = true;
        setTimeout(function() {
            flag = false;
        }, 0);
        funct(e);
    };
}

// Usage is done as:

win.addEventListener('foo', handleOnce(
    function(e){
        alert('I dont queue');
    }
));