JavaScript: How to call Function asynchronously

Veröffentlicht von Sascha am

In JavaScript ist es leider nicht Möglich, das aus anderen Sprachen bekannte Konzept der Threads zu verwenden. In JavaScript läuft alles in einem Hauptthread und blockiert gegebenenfalls das UI.
Hier möchte ich euch einen kleinen Umweg zeigen, wie man einen Asynchronen Function Call umsetzen kann.

Gehen wir von folgendem Problem aus. Dein Skript startet nun eine länger andauernde Berechnung. Damit der Besucher bescheid weiß soll er mit einer MessageBox darauf hingewiesen werden.

alert("Bitte haben Sie einen Augenblick Geduld...");
startLongProcedure();
// Do something when it's ready!

Das Problem bei diesem Code ist, dass die Berechnung nicht startet, bis der Besucher die alert-Box bestätigt hat.

Eine für viele ähnliche Probleme bequeme Lösung wäre folgendes, oder nicht?

alert.async("Bitte haben Sie einen Augenblick Geduld...");
startLongProcedure();
// Do something when it's ready!

An dieser Stelle machen wir uns dem Prototypischen Konzept von JavaScript zunutze und erweitern jede Function um eine async Methode. Da in JavaScript fast alles eine Function ist, schlagen wir quasi mit einem Holzhammer zu!

Function.prototype.async = function () {
    setTimeout.bind(null, this, 0).apply(null, arguments);
};
Kategorien: JavaScript

Kommentar verfassen

%d Bloggern gefällt das:

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.

Schließen