如题,XMLHttpRequest 可以用 promis 包装为异步并提供更多的功能(取消请求、进度条),但是普通请求中 fetch 比 XMLHttpRequest 更简单,请问该如何选择呢?
如题,XMLHttpRequest 可以用 promis 包装为异步并提供更多的功能(取消请求、进度条),但是普通请求中 fetch 比 XMLHttpRequest 更简单,请问该如何选择呢?
|
ashongJan 28, 2024 via iPhone
1
不追求古早浏览器兼容性就用 fetch 吧
|
|
lalalaqwerJan 28, 2024
2
随便吧,反正很多时候都要自己再包装一个相关的请求函数的
|
|
fengyjJan 28, 2024
3
|
|
ysc3839Jan 28, 2024 via Android
4
fetch 也能取消吧?进度的话好像也是有流式读取的接口,也可以实现。
|
|
codehzJan 28, 2024 via iPhone
5
fetch 可以用 abort controller 取消,上传进度比较麻烦,要自己拼接一个 readable stream
|
|
humbassJan 28, 2024
7
涉及到上传进度确实是一个问题,我现在是 nodejs 后端回传进度。
|
|
wakarimasenJan 28, 2024 via Android
8
难道实际开发不都是用 axios 或者 xx query 吗...
|
|
9
|
|
SeanfuckJan 28, 2024
10
如果 fetch 需要包装起来用的话,那不如用 XMLHttpRequest
|
|
changdyJan 28, 2024
11
几年不玩前端了..记得有人吐槽过 fetch 并不原生支持超时断开之类的
|
|
zhuangzhuang1988Jan 28, 2024
12
一直 axios
|
|
gxm44Jan 28, 2024
13
axios
|
|
jackxx274Jan 28, 2024
14
感觉现在更多用的是 axios ,进度条我以前用 nprogress 实现过
|
|
JounQinJan 29, 2024 via Android
15
|
|
stimwJan 29, 2024
16
fetch 的优点就是原生、简单,没必要包,像楼上说的,真要包不如直接用 axios 。
|
|
csliveJan 29, 2024 via Android
17
试试 rxjs
|
|
tsai2zeyongJan 29, 2024
18
写个测试/玩具啥的,哪个简单/哪个有用用哪个,正儿八经的产品项目还是用三方库比较好。
|
|
19
axios 实际也是包的 XMLHttpRequest 。
fetch 只是 API 比 XMLHttpRequest 新,原生支持 promise ,并没有啥优势。具体落实到项目里,不管用哪个,都是要包一下的(请求头上携带 token ,无权限时跳登录页等通用逻辑),原生不支持 promise 的也都会 new Promise 处理一下转成 promise ,等于没有区别。 XMLHttpRequest 因为自带的 API 更多一些,其实更好用一些。 |