Как мне объединить debounce с MutationObserver?

Я хотел бы знать, когда мутации перестали называться. Поэтому я реализую дебат. Однако мой console.log('*****Debounce ****'); никогда не называется.

Не могли бы вы помочь мне понять, что я делаю неправильно.

var target = document.body;
var observer = new MutationObserver(function(mutations) 
{
    mutations.forEach(function(mutation) 
        {
            for (var i = 0; i < mutation.addedNodes.length; i++) 
                {
                    var item = mutation.addedNodes[i];
                    console.log(item);
                    myCustomFunction
                }
        });
});         

observer.observe(document, {childList: true, subtree: true});

var myCustomFunction = debounce(function() 
               {
                   console.log('*****Debounced ****');
                   //call some method do more work etc
                }, 500);

function debounce(func, wait, immediate) 
{
var timeout;
return function() {
    var context = this,
        args = arguments;
    var later = function() {
        timeout = null;
        if ( !immediate ) {
            func.apply(context, args);
        }
    };
    var callNow = immediate && !timeout;
    clearTimeout(timeout);
    timeout = setTimeout(later, wait || 1000);
    if ( callNow ) {
        func.apply(context, args);
    }
};
}

0 ответов

Другие вопросы по тегам