fetch 特点
- 默认不携带 cookie,携带cookie信息需设置 credentials:
fetch(url, {credentials: 'include'})
; - 对某些错误 http 状态不会reject
- fetch返回 promise导致的,因为fetch返回的promise在某些错误的http状态下如400、500等不会reject,会被resolve;只有网络错误会导致请求不能完成时,fetch 才会被 reject
- fetch不支持超时timeout处理:
Promise.race
方法接受一个promise实例数组参数,表示多个promise实例中任何一个最先改变状态,那么race方法返回的promise实例状态就跟着改变:
- fetch不支持progress事件
response.body是一个可读字节流对象,其实现了一个getRender()方法