2016-04-04 10 views
-3

Mein JS Ereignis wie folgt aussieht:Javascript beginnen erst nächste Ereignis Verarbeitung dann beendet erste

So mehrere Felder dieses Ereignis aufrufen kann, wie ich

upload($(this)); 

nur dann Vorveranstaltung wenn nennen kann, ist fertig ?

+0

zu verwenden wäre, was man von Fall bedeuten sie ist fertig ? – murli2308

+0

Ich meine, wenn 'upload();' nur vom ersten Ereignis ausgeführt wird, dann erlauben 2 – Wizard

+0

Sie sollten ein Warteschlangensystem verwenden, um jedes Ereignis, wie sie aufgerufen werden, zu schieben. Sehen Sie sich die Async-Bibliothek an: https://github.com/caolan/async – cl3m

Antwort

1

Sie können Setup ein queue Managementsystem, das Async Bibliothek zum Beispiel verwenden, mit so etwas wie:

var q = async.queue(function (element, callback) { 
    // calling the upload task with the element arguments 
    upload(element) 
    // calling next task 
    callback(); 
}, 1); // we limit the task to 1 at a time 

$(document).on('change', 'input[name="' + ID +'[]"]', function() { 
    // enqueing the task with $(this) as argument 
    var val = $(this).val() 
    q.push($(this), function (err) { 
     // this will be logged when the task is completed 
     console.log('finished processing ' + val); 
    }); 
}); 

Eine weitere Möglichkeit, eine Reihe von Promises

Verwandte Themen