【问题标题】:readableStream is locked while using .json()使用 .json() 时 readableStream 被锁定
【发布时间】:2019-11-18 15:41:05
【问题描述】:

大家! 我遇到了一个问题:我正在尝试验证注册表单。总的来说,它工作正常,但我需要通过服务器验证表单。例如,就我而言,我需要确定电子邮件是否已被占用。

我尝试获取和异步/等待语法,但问题仍然相同: DOMException: "The operation was aborted. " 我现在理解的方式是readableStream(实际响应体是什么)是locked。所以抛出了错误的错误,我无法得到服务器响应。

try {
    const response = await fetch(options.url, options.requestOptions);
    const body = await response.json();
    if (options.modifyDataCallback instanceof Function) {
      body.data = options.modifyDataCallback(body.data);
    }
    return body.data;
  } catch (error) {
    throw error;
  }

如何查看解决方案?我发送请求并收到一些服务器错误,例如

code: email_in_use
message: Email '...' is already in use. 

然后我需要抛出错误并在其他地方捕获它,以便向客户端显示相应的错误消息。

在浏览器网络选项卡中,我确实收到了我想收到的内容,但在我的代码中无法获得相同的 JSON 响应。

【问题讨论】:

    标签: javascript async-await try-catch fetch


    【解决方案1】:

    谷歌浏览器提供了更多信息:net::ERR_HTTP2_PROTOCOL_ERROR 200。 问题出在后端。它是用 C# 编写的,API 方法返回Task。通过为该方法添加 async/await 解决了问题。

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 2020-11-05
      • 2020-12-04
      • 2012-12-16
      • 2012-11-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多