当前位置: 首页 > 知识库问答 >
问题:

如何在fetch中使用reviver函数。回答json()

羊舌庆
2023-03-14

JSON. parse附带了一个“恢复器”函数(例如:“使用恢复器函数的JSON. parse”)。

我怎样才能用这个“救世主”来回应。json?例如:

fetch(url)
.then(a => a.json({reviver}))    // unfortunately not working
.then(...)

我有一个解决方法

fetch(url)
.then(a => a.text())
.then(b => new Promise((resolve) => resolve(JSON.parse(b, reviver))))
.then()

但是它多用了一步,似乎没用。还有更好的主意吗?

共有2个答案

潘宸
2023-03-14

你可以做:

fetch(url)
.then((response) => {return response.json()})
.then((json) => {console.log(json)});
郎磊
2023-03-14

您的解决方法基本上是最好的选择,但如前所述,额外的promise是不必要的。

fetch(url)
    .then(response => response.text())
    .then(text => JSON.parse(text, reviver))
    // ...
 类似资料:
  • 问题内容: 我的JSON字符串包含一个返回此值的日期字段: 我对仅解析日期分隔而不是时间解析特别感兴趣。我尝试使用reviver函数,但有趣的是,从未调用过reviver函数!(在Firefox上试用) 这是我要完成的代码: 永不调用JSON.parse 。 我花了一整天,但没有运气!有人可以帮我吗? 问题答案: 正则表达式期望使用“ Zulu”时区(末尾为“ Z”字符),而示例日期-时间字符串则

  • 问题内容: 我怎样才能返回一个 函数 副作用的词汇封闭 1 斯卡拉? 例如,我在Go中查看此代码示例: 打印1 2 3 5 8 而且我不知道如何在Scala中编写相同的内容。 1.在Apocalisp评论后更正 问题答案: 稍短一些,您不需要退货。

  • 我有一个函数,它调用一些服务并返回响应。如果响应为FALSE,它将等待1秒再次询问服务(然后可能返回TRUE)。 如何调用我的函数“checkService()”一次,并获得真正的值?(第一次或第二次尝试,由函数决定)我在函数内设置了RET值,但函数总是返回第一次RET,因为setTimeout是异步的。 换句话说,我需要一些“睡眠”技巧,或者任何解决方案(也可能是jQuery)。

  • 当我试图在中使用URLSearchParams发布bodydata时,它在Chrome v72和Edge v40中工作,但在IE11(使用polyfills)上不工作。 在IE11:我得到这个错误: 错误:不支持的BodyInit类型 我在Edge/IE/etc浏览器中使用以下多边形填充: > whatwg fetch:“3.0.0”(一个窗口。fetch polyfill) url搜索参数pol

  • 我目前正在阅读React官方网站,在那里我遇到了这个问题。React官方网站声明我们可以在JSX中使用函数代码。因此,我尝试了以下代码,但不起作用。 ABCD类扩展了React。组件{ } 我知道,我知道,你们中的一些人可能会说,看看React网站上给出的例子。我看到了,官网上的例子涉及到外部功能。我只是想知道我们能否独立使用JSX内部的函数。 有关更多信息,请参阅此链接:https://reac

  • 问题内容: 嗨,我有一个PHP代码返回一个数组。我希望能够在我的ajax成功函数中使用此数组,但是我不确定如何执行此操作。我尝试了以下方法,但是没有运气。 php代码: js代码: 问题答案: 您应该从服务器以JSON形式返回数据。 的PHP JS