Dlaczego niektórzy programiści JavaScript używają setTimeout przez jedną milisekundę? [duplikować

To pytanie ma już odpowiedź tutaj:

Dlaczego setTimeout (fn, 0) jest czasem użyteczny? 17 odpowiedzi

Mam problem z użyciem wtyczki jQuery tablesorter i nie mogę dwukrotnie wywołać wyzwalacza.

Na przykład to nie zadziała:

this._$table.trigger('update');
this._$table.trigger('sorton', [[[1,1]]]);

Ale to działa:

this._$table.trigger('update');
setTimeout($.proxy(function() {
    this._$table.trigger('sorton', [[[1,1]]]);
}, this), 1);

A potem widzę, że problem polegał na „aktualizacji” wyzwalacza, wywołuje metodę z body:

function () {
    var me = this;
    setTimeout(function () {
        // rebuild parsers.
        me.config.parsers = buildParserCache(
        me, $headers);
        // rebuild the cache map
        cache = buildCache(me);
    }, 1);
}

Dlaczego programista tableorter wykorzystałsetTimeout z jedną milisekundą?

questionAnswers(3)

yourAnswerToTheQuestion