首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么javascript fetch只做选项而不做更多的调用?

JavaScript的fetch函数是用于发送HTTP请求的API,它提供了一种简洁、灵活的方式来进行网络通信。为什么fetch只做选项而不做更多的调用,可以从以下几个方面来解释:

  1. 设计哲学:fetch函数的设计哲学是尽可能地简单和灵活。它提供了基本的选项,如请求的URL、请求方法、请求头等,以便开发者可以根据自己的需求进行定制。这种设计使得fetch可以适用于各种场景,而不仅仅局限于特定的用途。
  2. 可替代性:fetch函数的设计使其可以与其他现有的网络请求库相互替代,如XMLHttpRequest。通过提供基本的选项,fetch可以满足大部分的网络请求需求,而不需要引入额外的库或API。这种可替代性使得开发者可以根据自己的喜好和项目需求选择适合的网络请求方式。
  3. 扩展性:fetch函数的设计使其可以方便地进行扩展和定制。开发者可以通过使用Promise、async/await等特性来处理异步请求和响应,也可以通过自定义的中间件来拦截和处理请求。这种扩展性使得fetch可以适应不同的业务需求和开发场景。
  4. 标准化:fetch函数是基于Fetch标准提案实现的,该标准由Web开发社区共同制定和维护。通过遵循标准,fetch函数可以保持与其他Web平台的兼容性,并且可以获得更好的可维护性和可扩展性。

总结起来,fetch函数只提供了基本的选项,而不做更多的调用,是为了保持其简洁、灵活和可替代的特性。开发者可以根据自己的需求和喜好选择适合的网络请求方式,并通过扩展和定制来满足更复杂的业务需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

✨从异步讲起,时间,时间,请给函数以答案!

这里先抛出 3 个经典问题: “JavaScript 为什么要是单线程?” “JavaScript 单线程,意味着什么?” “JavaScipt 异步原理是怎么实现?”...如果你能清晰准确地回答出这3个关于异步老生常谈经典问题,可以跳过下一小节释义。 经典 3 问 先浅答一下 JS 异步经典 3 问 ~ “JavaScript 为什么要是单线程?”...这样有何好处?核心好处是分离 创建(发布)  和 调用(订阅消费) 。 异步与回调核心意义不正在于此吗?...毫无疑问,控制其它变量,尽量选择有更多同步代码会更易理解。 为什么?因为异步就代表着先后时间关系,代表着复杂! 在你所有的应用里,最复杂状态就是时间。...当你操作数据状态改变过程比较直观时候,是很容易管理。但是,如果状态随着时间因为响应事件隐晦变化,管理这些状态难度将会成几何级增长。

1.1K20

Fetch还是Axios——哪个更适合HTTP请求?

前端开发最重要部分之一是通过发出 HTTP 请求与后端进行通信,我们有几种方法可以异步地在 Javascript 中进行 API 调用。...在 .fetch() 方法中,我们有一个强制性参数url,它返回一个 Promise,可以使用 Response 对象来解决。 .fetch() 方法第二个参数是选项,它是可选。...如果你有大量大数据要下载,你想跟踪进度指标的进度,你可以用 axios 来管理,更容易更快,但 .fetch() 也提供了这种可能性,只是它需要更多代码来开发同样结果。....fetch() 默认不提供 HTTP 拦截功能,我们可以覆盖 .fetch() 方法,定义发送请求过程中需要发生事情,当然,这需要更多代码,可能比使用 axios 功能更复杂。...大多数浏览器和 Node.js 环境都支持 Axios,现代浏览器仅支持 Fetch,并且某些版本可能会与旧版本一起发布。

4.6K20

Ajax,jQuery ajax,axios和fetch介绍、区别以及优缺点

大多数情况下你无需直接操作该函数,除非你需要操作不常用选项,以获得更多灵活性。...第一种方式反而是最复杂但也是最灵活和最强大。 请求方式这里不做太多赘述,一个传送门,有兴趣小伙伴可以自己去查阅一下。...,以及ES规范完善,更多API更新,它逐渐暴露了自己不足: ★ 本身是针对MVC编程,不符合现在前端MVVM浪潮、配置和调用方式非常混乱,而且基于事件异步模型不友好 ★ 基于原生XHR开发...最简单用法是只提供一个参数用来指明想fetch()到资源路径,然后返回一个包含响应结果promise(一个 Response 对象)。 当然它只是一个 HTTP 响应,不是真的JSON。...,有助于我们提前调试接口(当然,通过chrome插件我们也可以到)。

2.3K62

redux-saga

比较传入参数是否相同,不做实际操作),可以简单比较操作指令(Effect)是否等价。...从单元测试角度来看,Effect相当于把参数提出去了,让“比较传入参数是否相同”这一步可以在外面统一进行,不用逐个mock替换 P.S.关于易测试性更多信息,请查看Testing Sagas 另外...通过框架约束,多一层描述对象来避免mock 这样并不十分完美,还存在2个问题: 业务代码稍显麻烦(不直接yield promise/dispatch action,都要用框架提供creator(call...cancel掉pending最新) takeEvery, takeLatest是在take之上封装,take才是底层API,灵活性最大,能手动满足各种场景 P.S.关于3者关系更多信息,请查看...支持单action,如果是action序列的话要拆开,用take能保留关联逻辑块完整性,比如登录/注销 别人更容易理解 控制逻辑在业务代码里,不是藏在框架内部机制里,一定程度上降低了维护成本 P.S

1.9K41

目前5种最流行发送HTTP请求方法

所以,在今天帖子中,我们将讨论用Javascript发送HTTP请求不同方法。从语言提供本地选项开始,我们将查看以下五个模块,并使用它们发送不同类型HTTP请求。...作为一种考虑到现代应用程序和开发人员需求构建API, Fetch已经成为当今最流行Javascript发送HTTP请求方式之一。...fetch方法接受一个配置对象作为第二个参数,以方便操作HTTP字段,如头、内容类型、请求方法等。您可以在其官方文档中找到Fetch支持配置选项完整列表。...它自动地将响应体解析为Javascript对象,不需要开发人员干涉。它还在catch方法中捕获HTTP错误,我们可以使用错误来识别该方法。响应领域。如果请求由于网络相关错误失败,则这些错误。...对于ie浏览器支持,Ky提供了一个替代包,Ky-universal,不知道他们为什么还要麻烦。 Ky缺点 相对于本文中讨论其他成熟多功能选项来说,这是一个相对较新包。 需要添加外部依赖项。

2.9K20

(自制翻译)如何解决在vue中this报错undefined

如果你把这个箭头函数替换成普通函数,也许能解决上面你遇到问题。 接下来让我们深入原理来了解为什么会产生这个问题。 毕竟,知识是强大,如果你知道了问题原因,你将能够避免更多问题并节省时间。...理解两种类型函数 在Javascript里我们可以使用两种不同函数。...正因为这个method使用是普通函数(不是箭头函数),它在vue里创建了自己上下文。 接下来继续拓展当你使用axios或fetch请求数据时该怎么解决箭头函数问题。...首先,作用域出现在变量存在地方。在Javascript中,window变量有全局作用域——在任何地方都可以被调用。大多数变量在被定义函数里、class类中、模块里会生效。...静态作用域奇妙之处在于它在函数中对this影响。对于箭头函数,this引用是外层作用域this。普通函数引用this就很奇怪,这也是为什么箭头函数被更多人推荐使用。

4K40

前端-学习JavaScript是一种什么样体验?

ECMAScript 是啥…… 你晓得,JS是1995年诞生JS标准是1999制定出来。那时候 JavaScript 还叫做 Livescript,只能运行在网景浏览器里。...这么看起来有点过于复杂啊。 确实。这就是为什么你应该使用 Grunt、Gulp 或者 Broccoli 这样任务管理工具,它们能自动运行 Browserify。不对,你现在可以用 Mimosa。...我们不是在说 JavaScript 吗?! Typescript 也是 JavaScript 呀,它比 JS 更好用,是 JS 超集,它是基于 ES6 ,就是我们刚才谈论 ES6,你还记得吧。...await 能让你拦住一个异步调用,让你更好地控制异步返回数据,大大增强了代码可读性。...嗯,别忘了加上 Fetch Polyfill,因为 Safari 不支持 Fetch。 你猜怎么着,我们就聊到这吧。我不做了,我不做 Web 了,我也不想再碰 JS 了。

1.1K30

直播场景 http flv 流内存泄露排查小记

稳定重现 音视频分队同学首先是去做实验重现这个问题,针对直播代码测试页面: 空白测试页面:XHR 请求 flv 资源,页面内存一直增长到一定阈值后,突然回到五十来兆,然后不再增长,请求还在继续,无...空白测试页面:使用 flv.js 拉流不播放,没有加额外参数,页面内存在两百多兆波动,无 crash。...可知Renderer进程是通过IPC来读取Browser进程请求响应数据IPC(Inter-process communication)是通过共享内存来实现。...; }); 由于 Response 实例 clone().then()  调用对http flv流 Blob 响应数据等待,使得此部分 Blob 数据一直被引用计数(详见 Javascript GC...window.fetch

1.1K10

JavaScript 编程精解 中文第三版 十八、HTTP 和表单

我们将在本章后面的回到表单,以及如何与 JavaScript 交互。 Fetch 浏览器 JavaScript 可以通过fetch接口生成 HTTP 请求。...为了添加一个请求正文,你可以包含body选项。 为了设置标题,存在headers选项。 例如,这个请求包含Range协议,它指示服务器返回一部分响应。...我们可以编写代码来检测用户输入是否正确并且立刻提示错误信息,不是提交表单。或者我们可以禁用正常提交方式,正如这个例子中,让我们程序处理输入,可能使用fetch将其发送到服务器不重新加载页面。...选择字段也有一个更类似于复选框列表变体,不是单选框。 当赋予multiple属性时,标签将允许用户选择任意数量选项不仅仅是一个选项。...浏览器 JavaScript 可以通过fetch接口生成 HTTP 请求。

3.8K20

异步JS中Web Workers

一、了解Web Workers 介绍 js Workers 前, 先思考什么是异步javascript? 为什么需要异步javascript存在?...因为javascript是单线程(注意浏览器不是单线程, js调用其内部api也不一定是单线程, 如定时器), 其只有一个线程用来执行代码, 所以为了避免遇到计算量大、耗时任务阻塞线程继续往下执行...Shared Workers: 共享线程, 可以被运行在同源所有进程访问(不同浏览选项卡,内联框架及其它shared workers), 可以由运行在不同窗口中多个不同脚本共享...., 只不过是调用 SharedWorker 对象进行实例化, 这里不做举例.... Web Workers 除了上面说三种类型, 还包括音频 Workers、Chrome Workers 等等, 也都在特定场景中非常有用.

1.5K20

前端工程化发展历史

Babel 是啥 Babel 是一个可以帮助你把任意版本 JavaScript 代码转换成你要版本。但如果你坚持使用 ES5 语法,Babel 也可以不引入。...ES2016+ 不已经是 ES6 超集了,为什么我们还需要使用这个叫 TypeScript 东西? 因为它允许我们写 javaScript 时候定义类型,从而减少运行时错误。...虽然 TypeScript 是 javaScript 超集,但它还需要编译成 javaScript 才能在浏览器运行。另一种工具 Flow 就仅仅类型检查,无需编译。 等等,Flow 是啥?...AJAX 只是基于 XMLHttpRequests 封装, Fetch 可以让你使用 Promise 风格去异步请求数据,从而避免回调地狱。 回调地狱?...是的,通过 promise 你可以更轻松管理异步请求,写出易于理解代码,同时调用多个网络请求。 也就是用 Fetch 去写?

77120

使用 React Testing Library 15 个常见错误

可以看这里视频来了解更多:Fix the "not wrapped in act(...)" warning。...这和下面这一节也有关系: 没有用文本来查询 作为 “使用错误 Query” 子集,我想聊一下为什么我们更建议你用真实文本来查询(关于地区语言,应该用默认地区语言文本),不是用 Test ID...(1) 在上面的例子中,如果 window.fetch 调用了两次,那么 waitFor 就会失败,但是我们就得等到超时了才能看到具体报错。...因此,callback 可在不确定时间和频率(在间隔以及 DOM 变化时调用)被调用(或者检查错误)。所以这也意味着你副作用可能会被多次调用!...也因为这点,断言是永远不可能失败(因为如果找不到元素,查询在断言之前抛出异常)。 因为这个原因,很多人直接不做断言了。

1.2K20

JavaScript怎么模拟 delay、sleep、pause、wait 方法

然后,在短暂两秒钟后,“World!”v会接着出现。这是一种既简洁又有效引入延迟方法。 如果你只是为了这个来,那太好了!但如果你对“为什么”和“怎么原因感到好奇,还有更多可以学习内容。...,然后输出与我GitHub帐户关联公共仓库数量。 这是因为在JavaScript中,从API获取数据是一个异步操作。JavaScript解释器会遇到 fetch 命令并发送请求。...setTimeout() 函数检查和最佳实践 正如你可以在我们 setTimeout 教程中阅读到,原生JavaScript setTimeout 函数在指定延迟(以毫秒为单位)后调用一个函数或执行一个代码片段...这样,你可以创建一个延迟操作序列,不会阻塞浏览器或损害用户体验。...我们还可以在第一个回调函数后面链式地添加更多回调函数。 这样是可行,但看起来不太好看。

2.3K40
领券