html5 - Masalah yang dihadapi dalam buku pengaturcaraan tak segerak javascript?
天蓬老师
天蓬老师 2017-05-16 13:42:47
0
3
497

Baca buku JavaScript Asynchronous Programming sekali lagi, dan kemudian saya melihat sekeping kod

var webSocketCache = {};
function openWebSocket(serverAddress, callback) {
    var socket;
    if (serverAddress in webSocketCache) {
        socket = webSocketCache[serverAddress];
        if (socket.readyState === WebSocket.OPEN) {
            callback();
        } else {
            socket.onopen = _.compose(callback, socket.onopen);
        };
    } else {
        socket = new WebSocket(serverAddress);
        webSocketCache[serverAddress] = socket;
        socket.onopen = callback;
    };
    return socket;
};

Tertera dalam buku

        var socket=openWebSocket(url,function(){
          socket.send('Hello,server!');      
        });

Ini akan menyebabkan kod ranap, yang mengelirukan. . Mengapakah memanggil fungsi panggil balik sebelum mengembalikan nilai merosakkan kod. Saya harap anda semua boleh membantu saya menerangkan

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(3)
Peter_Zhu

Fungsi panggil balik boleh dilaksanakan sebelum kembali, dan soket pada masa ini belum diberikan nilai

Anda boleh menghantar parameter kepada panggilan balik untuk mengelakkan situasi ini

巴扎黑

Adakah anda mentakrifkan url?

漂亮男人
const func = function (callback) {
    callback();
    return 100;
};

const x = func(() => {
    console.log(x); //此处将打印 undefined;
});

console.log(x); //此处打印 100

Saya tertanya-tanya adakah anda boleh memahami penjelasan ini?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan