Heim > Fragen und Antworten > Hauptteil
Lesen Sie das Buch „JavaScript Asynchronous Programming“ noch einmal, und dann habe ich einen Code gesehen
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;
};
So steht es im Buch
var socket=openWebSocket(url,function(){
socket.send('Hello,server!');
});
Dies führt zum Absturz des Codes, was verwirrend ist. . Warum führt der Aufruf einer Rückruffunktion vor der Rückgabe eines Werts zum Absturz des Codes? Ich hoffe, ihr könnt mir beim Erklären helfen
漂亮男人2017-05-16 13:44:47
const func = function (callback) {
callback();
return 100;
};
const x = func(() => {
console.log(x); //此处将打印 undefined;
});
console.log(x); //此处打印 100
这样解释不知道你能否明白?