为啥不自己写游戏引擎呢?
那你去写好了。有问题指教,埋汰就算了。
异常情况没reject,不合格
哦,原来你是全resolve了,虽然也行,不过这样设计不够好
Http类只是对XMLHttpRequest使用的一个封装。只要负责 [发送/接收/异常] 的反馈resolve出去,谁请求谁处理不好么。不必要在Http中处理过多没必要的,这样更加可控,底层也更加纯粹。
你可用理解为,发送,收到啥就是啥,直接抛出去,谁使用了我,你自己处理,我不管。
用reject和你这个设计不冲突,纯粹reject可以try/catch
我看你提及了C#,外部try/catch的设计更接近C#
本身XMLHttpRequest就是异步,try/catch可不放在外面。 只要处理好接收到的数据解析部分就好。
我虽然提到C# 但是语言本身就不同,我只是说有那么种味道而已,设计肯定要根据语言本身去编写的。不可能完全相同的。
这里用async/await封装 就是想利有这个特性,想做到在数据上的顺序执行而已。
总之各有好坏,只要适合自己的就行,不是么。
这只是一个参考,毕竟写这个之前也是搜索了相关很多的内容,都没有自己满意的。
发这个出来是目前自己觉得整理的相对好的,看上去相对简单易懂的,如有哪里的缺陷能够指教肯定是最好的嘛!
还是顺序 写舒服

仔细看了下,感觉超时处理有可能无效。
请指出哪里无效了?
onreadystatechange应该能多次回调
你是说onreadystatechange会多次回调,还是要支持多次回调?
怎么过,这个也是问题啊,你用定时器,可是定时器在开始就被取消了,那就超不了时了。
web平台,可以用xhr.timeout=5000; xhr.ontimeout(function(){}); 原生平台可以用 xhr.onerror处理超时问题。
send() 请求超时会进onreadystatechange?
请求远端没响应咋进onreadystatechange告诉我?
嗯,仔细看了下, 少了个参数设置
![]()
xhr.timeout = 5000; 设置超时时间就没问题了。
估计是整合的时候漏了。

