起因是看了 阮一峰的一篇文章提到了这样的说法,我当时觉得这种说法是有问题的,因为 req 是一个对象,js按照顺序执行,如果在请求发出前指定对应的事件回调函数,那么这个请求的 onload/onerror 应该都是默认为空的才对。于是我用这样的代码测试了一下:// 1var req = new XMLHttpRequest();req.open('GET', 'https://segmentfault.com/'); req.send();req.onload = function (res){console.log(res)}; req.onerror = function (){}; // 2var req = new XMLHttpRequest();req.open('GET', 'https://segmentfault.com/'); req.onload = function (res){console.log(res)}; req.onerror = function (){}; req.send();发现两者都有返回值,也就是说两者都有回调函数。底下的回复中也有人提出了和我类似的看法,他有提及了 缓存的因素。如下:想请教一下大家的看法。谢谢
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
send 出去之后哪怕马上有应答也是异步的,必然会在这段代码之后执行回调。
结合这个理解
var o = {}
setTimeout(() => o.hello(), 0)
o.hello = () => console.log('hello')
添加回答
举报
0/150
提交
取消