为了账号安全,请及时绑定邮箱和手机立即绑定

javascript异步编程书中遇到的问题?

javascript异步编程书中遇到的问题?

慕哥6287543 2018-11-06 13:15:17
再看JavaScript异步编程这本书,然后看到了一段代码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;};书中说        var socket=openWebSocket(url,function(){          socket.send('Hello,server!');              });这样会使代码崩溃,不解。。在返回值之前调用回调函数为什么会使代码崩溃。希望大大们能帮我解释解释
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

在返回之前回调函数就有可能被执行了,这个时候的socket还没有赋值

可以给callback传一个参数来避免这种情况


查看完整回答
反对 回复 2018-12-08
  • 1 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号