Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendapatkan Nilai Pulangan daripada Fungsi Asynchronous JavaScript dengan jQuery?

Bagaimana untuk Mendapatkan Nilai Pulangan daripada Fungsi Asynchronous JavaScript dengan jQuery?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 07:45:18788semak imbas

How to Obtain Return Values from JavaScript Asynchronous Functions with jQuery?

Nilai Pulangan Asynchronous JavaScript dengan jQuery

Sifat tak segerak JavaScript sering menimbulkan cabaran dalam mendapatkan nilai pulangan serta-merta. Dalam konteks ini, pertimbangkan fungsi jQuery yang mendapatkan semula nilai GUID melalui panggilan tak segerak. Walaupun fungsi alert() dalam fungsi memaparkan GUID dengan jayanya, memberikannya kepada pembolehubah dan mengembalikan nilainya telah terbukti sukar difahami oleh banyak pembangun.

Satu pendekatan biasa untuk masalah ini ialah memperkenalkan fungsi panggil balik sebagai parameter. Kaedah ini memastikan bahawa fungsi mengembalikan janji tertunda setelah selesai panggilan tak segerak, membenarkan panggilan balik dilampirkan padanya.

function trackPage() {
    var elqTracker = new jQuery.elq(459),
        dfd = $.Deferred();

    elqTracker.pageTrack({
        success: function() {
            elqTracker.getGUID(function(guid) {
                dfd.resolve(guid);
            });
        }
    });

    return dfd.promise();
}

// Example usage:
trackPage().done(function(guid) {
    alert("Got GUID: " + guid);
});

Dalam contoh ini, fungsi trackPage() kini mengembalikan janji. Fungsi panggil balik boleh dilampirkan menggunakan kaedah done() untuk menerima nilai GUID sebaik sahaja panggilan tak segerak selesai. Berbilang panggilan balik boleh dirantai bersama.

var pageHit = trackPage().done(function(guid) {
    alert("Page Hit GUID: " + guid);
});

$("button").click(function() {
    pageHit.done(function(guid) {
        alert("Clicked on Page GUID: " + guid);
    });
});

Objek $.Deferred yang disediakan oleh jQuery membolehkan pembangun mencipta logik tak segerak mereka sendiri yang mengembalikan janji, memastikan antara muka yang konsisten merentas aplikasi. Modul jQuery lain, seperti AJAX, juga mengembalikan janji, menjadikannya lebih mudah untuk mengendalikan operasi tak segerak dalam JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Pulangan daripada Fungsi Asynchronous JavaScript dengan jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn