首页 > 解决方案 > 当我认为它应该是 json 时,获取返回一个承诺?然后它没有正确更新redux

问题描述

我有一个正在为类项目构建的后端,并且我能够使用以下命令成功发布到它的数据库:

export function postToAPI(data) {
  return fetch('http://localhost...', {
    method: 'POST',
    mode: 'cors',
    cache: 'no-cache',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/json',
    },
    redirect: 'follow',
    referrer: 'no-referrer',
    body: JSON.stringify(data),
  })
    .then(response => {
      return response.json();
    })

在它发布到数据库之后,我想获取该 json,然后将其推送到 Redux 存储。如果成功,它会返回 'response.json(),但是当我控制台记录响应时,它会作为一个承诺出现,而不是一个 json 对象。我究竟做错了什么?

我可以看到承诺在控制台日志中成功返回,但我不知道如何实际从中获取数据以实际将其发布到我的 redux。

我正在使用一个中间件来检查动作类型,看看它是否是一个使用 post 动作更新数据库的中间件,如果是,首先更新数据库,从返回的 JSON 中获取 ID,然后将该信息推送到 redux ,但我只是不能为我的生活获取数据以摆脱返回的承诺。我以为 .json() 函数可以做到这一点,但此时我迷路了。

我从控制台记录上面显示的该函数的返回得到这个响应:

承诺结果截图

标签: javascriptjsonreactjsreduxpromise

解决方案


推荐阅读