fetch().then() 返回内容类型和正文[重复]

2024-06-18

互联网上的每个 fetch API 示例都展示了如何使用 response.json()、response.blob() 等仅返回正文。 我需要的是调用一个将内容类型和主体都作为 blob 的函数,但我不知道该怎么做。

fetch("url to an image of unknown type")
  .then((response) => {
    return {
      contentType: response.headers.get("Content-Type"),
      raw: response.blob()
  })
  .then((data) => {
    imageHandler(data.contentType, data.raw);
  });

这显然不起作用:data.contentType 已填充,但 data.raw 是一个承诺。如何在同一上下文中获取这两个值?


你可以这样写:

fetch("url to an image of unknown type")
  .then(response => {
    return response.blob().then(blob => {
      return {
        contentType: response.headers.get("Content-Type"),
        raw: blob
      }
    })
  })
  .then(data => {
    imageHandler(data.contentType, data.raw);
  });

或者这样

fetch("url to an image of unknown type")
  .then(response => {
    return response.blob().then(blob => {
        imageHandler(response.headers.get("Content-Type"), blob)
    })
  })

在这两种情况下,您都保留收到已解决的回调blob在您可以访问的范围内response.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fetch().then() 返回内容类型和正文[重复] 的相关文章

随机推荐

  • 有条件地忽略 Karma / Jasmine 的个别测试

    我有一些测试在 PhantomJS 中失败 但在其他浏览器中则不然 我希望在我的监视任务中使用 PhantomJS 运行时忽略这些测试 因此新的浏览器窗口不会获得焦点并且性能更快一点 但在我的标准测试任务和 CI 管道中 我想要all在 C
  • 如何用单线程实现TCP上的全双工通道?

    我正在编写的网络库需要通过 TCP 套接字发送和接收消息 消息可以随时发送或接收 即应该作为全双工通道工作 我能够使用两个线程来实现这样的场景 调用 send 的主线程和一个主要在 receive 调用处阻塞的专用线程 我的问题是 是否可以
  • NestJs/Mongoose 中的自动递增序列

    我正在将 NodeJs 项目迁移到 NestJs 该项目使用 MongoDB 作为后端数据库 使用 Mongoose 作为 ODM 我当时用的是猫鼬序列 https github com ramiel mongoose sequence插件
  • 如何在 Objective C 中使用 swift 文件

    我想在 Objective C 代码中使用我的 Swift 文件 我找到了不同的链接 说明了如何操作 我的项目名称是 测试项目 我将 import Test Project Swift h 导入到我的 m 文件中 以在 Objective
  • 有没有一个 PHP 函数可以交换两个变量的值?

    比如说我有 var1 ABC var2 123 在某些条件下我想像这样交换两者 var1 123 var2 ABC 是否有一个 PHP 函数可以执行此操作 而不必创建第三个变量来保存其中一个值 然后重新定义每个值 就像这样 var3 var
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self
  • Chart js:更新具有两个数据集的折线图

    我想用两个数据集更新图表js中的折线图 我以某种方式设法清空图表 然后能够填充其中一个数据集 但无法使两个数据集都工作 这是代码 ajaxRequest url reports updateChart filter true method
  • Vb中读取USB存储设备的序列号

    是否可以使用VB读取USB驱动器的序列号 这将为您提供 net 中驱动器的信息 包括 USB 设备 只需导入这些 导入脚本 导入系统 IO Private Class USBsn Private Sub Button1 Click ByVa
  • zsh:命令替换和正确引用

    我有一个脚本P它接受文件名作为参数 P file1 file2 file3 我也有一个脚本G它生成一个 通常是短列表 文件名 每行一个文件名 在我想写的主脚本中zsh 我想用G生成要处理的文件名P 天真的尝试是这样的 P G 这几乎很有效
  • 从 SQLCMD 执行 CREATE VIEW 和 ALTER VIEW

    我正在尝试使用 sql cmd 执行包含以下内容的 sql 文件 sqlcmd S localhost dbInstance i Sample sql v filepath C Sql 示例 sql内容 根据手册 CREATE VIEW 必
  • 如何实现从调用者动态创建对象和类的零参数构造函数基类?

    我有 4 个类 它们都实现了非常相似的代码块 唯一的区别是每个人都需要实例化一个单独的Object and Myclass 在运行时 下面Action类是一个简化版本 实际代码要长得多 通常我会传入参数来根据调用者提供的内容创建对象和类 然
  • 浮点运算的最佳实践

    我正在对精确到小数点后第二位的小数输入执行加法和减法 我试图通过乘以 100 将它们转换为整数来提高准确性 但效果却相反 考虑以下代码和输出 double d 2 01 int a int d 100 0 cout lt lt a lt l
  • GridView 模板列有条件设置为只读

    有没有办法将 GridView 上的模板列从代码隐藏设置为只读 就像如果测试Admin true make readonly false else readonly true 我发现穆罕默德 阿赫塔尔的答案几乎是正确的 只是我需要在我的案例
  • jquery ui 选项卡内的 Openlayers

    我想在 jquery ui 选项卡中使用 Openlayers 但出现错误 大小为空 有同样的问题 解释于jquery 选项卡 http docs jquery com UI Tabs my slider 2C Google Map 2C
  • Swagger/OpenAPI 注释 V3 - 在 swagger 注释中使用 Enum 值

    我正在使用 Swagger OpenApi V3 注释创建应用程序的 API 描述 从以下依赖项导入
  • Spring @RequestParam 和控制器接口

    我对以下行为感到困惑 RequestParam value someValue 在里面docs https docs spring io spring docs current javadoc api org springframework
  • 使用设备函数指针数组

    我需要以下设备版本 主机代码 double func double x double func1 double x return x 1 double func2 double x return x 2 double func3 doubl
  • AngularUI 可排序不适用于多个应用程序

    我创建了带有可排序列表的 angularjs 应用程序 我的应用程序可以与其他不同的应用程序一起多次包含在页面中 每个角度应用程序都是独立的用户控制 var myapp angular module myapp ui myapp contr
  • 用纯JS检查元素是否有背景图片?

    检查特定元素是否具有的正确方法是什么background image与它相关联 在纯Javascript中 现在我有这个 var elementComputedStyle window getComputedStyle element va
  • fetch().then() 返回内容类型和正文[重复]

    这个问题在这里已经有答案了 互联网上的每个 fetch API 示例都展示了如何使用 response json response blob 等仅返回正文 我需要的是调用一个将内容类型和主体都作为 blob 的函数 但我不知道该怎么做 fe