存在捕获时可能未处理的承诺拒绝

桑德斯

我有以下代码:

export function fetchValueFromApi(){
    return function act(dispatch){
        dispatch(fetchingLimit);
        return fetch('https://someapi/v1/foo/bar?api_key=123456789')
          .then(response =>{
              console.log("response",response.json());
              response.json();
          }).then(json =>{
              if (json.data()) {
                  dispatch(receivingValue(json.data.result))
              } else {
                  throw new Error('Error');
              }
          }).catch(error => dispatch(receivingValueFailed(error)))
    }
}

现在我知道这个电话不会成功。我期待它失败并陷入困境。但是,我收到此错误:

可能未处理的承诺拒绝

所以出于某种原因,我们没有点击.catch.

我怎么能解决这个问题?

蒂莫特格尔

因此,您遇到了问题,只是没有出现您预期的错误。

就 fetch 而言,403 不是错误,因为请求本身已成功发出(响应不是您的应用程序所期望的)。您必须自己处理 40X 错误。正如您的 console.log 显示的那样,异常发生在您throw new Error到达之前

当遇到网络错误或 CORS 在服务器端配置错误时, fetch() 承诺将拒绝并返回 TypeError,尽管这通常意味着权限问题或类似问题——例如,404 不构成网络错误。

来自https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

你应该

  1. response.json()在第一个 .then 处理程序中返回.then(response => response.ok && response.json())
  2. 在第二个 .then 处理程序中添加更安全的检查,例如 if (json && json.data)
  3. 如果没有 json 数据,则调度失败操作而不是抛出错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

React Native:可能未处理的承诺被拒绝

来自分类Dev

错误:未捕获(承诺中):未处理的承诺拒绝

来自分类Dev

React Native:RNGeocoder.reverseGeocodeLocation-可能的未处理的承诺拒绝

来自分类Dev

可能的未处理的承诺拒绝(id:0):undefined不是对象

来自分类Dev

如何找到可能的未处理的承诺拒绝的来源

来自分类Dev

未处理的承诺拒绝AVA

来自分类Dev

节点。未处理的承诺拒绝

来自分类Dev

如何异步处理未处理的承诺拒绝?

来自分类Dev

尽管尝试使用Node12.x捕获AWS Lambda,但仍未处理承诺的拒绝

来自分类Dev

javascript承诺未处理的拒绝问题

来自分类Dev

angular 2未处理的承诺拒绝TypeError

来自分类Dev

未处理的承诺拒绝:模板解析错误:

来自分类Dev

Angular 2 中未处理的承诺拒绝

来自分类Dev

Ionic 3 UnhandledPromiseRejectionWarning:未处理的承诺拒绝

来自分类Dev

XHR 请求:UnhandledPromiseRejectionWarning:未处理的承诺拒绝

来自分类Dev

未处理的承诺拒绝警告 NodeJS

来自分类Dev

可能的未处理的承诺拒绝(ID:1):TypeError:网络请求失败

来自分类Dev

React Native:可能未处理的承诺拒绝:找不到变量:名称

来自分类Dev

React Native:可能未处理的承诺拒绝(ID:0):类型错误:未定义不是对象

来自分类Dev

护照-本地猫鼬:未处理的承诺拒绝警告:未处理的承诺被拒绝

来自分类Dev

捕获when.js未处理的拒绝

来自分类Dev

未处理的承诺拒绝来自 Try 中调用的承诺

来自分类常见问题

Angular 1.6.0:“可能未处理的拒绝”错误

来自分类Dev

从打字稿编译后未处理的承诺被拒绝

来自分类Dev

Feathers.js oauth调用未处理的拒绝承诺

来自分类Dev

快速登录:UnhandledPromiseRejection警告:未处理的承诺被拒绝

来自分类Dev

未处理的承诺拒绝:ReferenceError:成员未定义

来自分类Dev

未处理的承诺拒绝和ERR_HTTP_HEADERS_SENT

来自分类Dev

弃用警告:不推荐使用未处理的承诺拒绝

Related 相关文章

  1. 1

    React Native:可能未处理的承诺被拒绝

  2. 2

    错误:未捕获(承诺中):未处理的承诺拒绝

  3. 3

    React Native:RNGeocoder.reverseGeocodeLocation-可能的未处理的承诺拒绝

  4. 4

    可能的未处理的承诺拒绝(id:0):undefined不是对象

  5. 5

    如何找到可能的未处理的承诺拒绝的来源

  6. 6

    未处理的承诺拒绝AVA

  7. 7

    节点。未处理的承诺拒绝

  8. 8

    如何异步处理未处理的承诺拒绝?

  9. 9

    尽管尝试使用Node12.x捕获AWS Lambda,但仍未处理承诺的拒绝

  10. 10

    javascript承诺未处理的拒绝问题

  11. 11

    angular 2未处理的承诺拒绝TypeError

  12. 12

    未处理的承诺拒绝:模板解析错误:

  13. 13

    Angular 2 中未处理的承诺拒绝

  14. 14

    Ionic 3 UnhandledPromiseRejectionWarning:未处理的承诺拒绝

  15. 15

    XHR 请求:UnhandledPromiseRejectionWarning:未处理的承诺拒绝

  16. 16

    未处理的承诺拒绝警告 NodeJS

  17. 17

    可能的未处理的承诺拒绝(ID:1):TypeError:网络请求失败

  18. 18

    React Native:可能未处理的承诺拒绝:找不到变量:名称

  19. 19

    React Native:可能未处理的承诺拒绝(ID:0):类型错误:未定义不是对象

  20. 20

    护照-本地猫鼬:未处理的承诺拒绝警告:未处理的承诺被拒绝

  21. 21

    捕获when.js未处理的拒绝

  22. 22

    未处理的承诺拒绝来自 Try 中调用的承诺

  23. 23

    Angular 1.6.0:“可能未处理的拒绝”错误

  24. 24

    从打字稿编译后未处理的承诺被拒绝

  25. 25

    Feathers.js oauth调用未处理的拒绝承诺

  26. 26

    快速登录:UnhandledPromiseRejection警告:未处理的承诺被拒绝

  27. 27

    未处理的承诺拒绝:ReferenceError:成员未定义

  28. 28

    未处理的承诺拒绝和ERR_HTTP_HEADERS_SENT

  29. 29

    弃用警告:不推荐使用未处理的承诺拒绝

热门标签

归档