【问题标题】:React/Redux: How to return two objects in a method that calls an API?React/Redux:如何在调用 API 的方法中返回两个对象?
【发布时间】:2018-02-26 23:16:04
【问题描述】:

这是我调用 API 并返回数据对象的代码 sn-p:

function search(location, term) {
  let body = {
   location: location,
   term: term
  };

  return callApi("search", "GET", body)
    .then(response => {
      return response.data;
    })
    .catch(error => {
      return Promise.reject(error);
    });
}

注意我如何返回response.data。我还要回response.extra

关于如何做到这一点的任何想法?我需要创建其他方法吗?

【问题讨论】:

    标签: reactjs ecmascript-6 redux


    【解决方案1】:

    你可以从 Promise 中返回任何你想要的东西:

    return callApi("search", "GET", body)
      .then(response => {
        return {
          data: response.data,
          extra: response.extra
        }
      })
    

    当然,您可以返回整个响应对象:

    .then(response => response)
    

    通过更多字段获得相似的结果

    【讨论】:

      【解决方案2】:

      假设响应已经包含数据和额外内容,您可以返回一个数组或一个对象(这是更可取的)。 如果你不介意,你可以直接返回响应,或者(如果你想确保真的只公开数据和额外的)你返回

      {data: response.data, extra: response.extra}
      

      在这种情况下,您必须通过下一个 Promise 处理程序中的点符号来访问它。

      希望我没有误解你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-25
        • 2012-06-24
        • 2020-02-16
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多