【问题标题】:How can I send data on a get and receive a return?如何在获取时发送数据并接收返回?
【发布时间】:2022-01-09 21:58:23
【问题描述】:

我必须在获取请求中发送这些数据,但我不知道该怎么做。你能帮帮我吗?

const ROUTE = "public/v1/route";

export async function showRoute(
  flow: string,
  token: string
): Promise<RouteParams> {
  const response = await client.get(ROUTE);
  return response.data;
}

【问题讨论】:

  • 您可以定义一个变量并将异步函数的返回值放入其中,然后在您想要的任何地方使用该变量中的值

标签: javascript reactjs typescript react-native


【解决方案1】:

您可以使用async/await.then() 承诺链:

import {showRoute} from './path-to-showRoute'

showRoute(/* params */).then(data => sendGetRequest(data))

//or

async function sendRouteInfo(){
  const routeData = await showRoute(/* params */)
  if (routeData) sendGetRequest(routeData)
}

PS:sendGetRequest 是一个模拟函数,它只是使用axiosfetch 发送一个get 请求

【讨论】:

  • 我不明白对不起我需要发送这个令牌和流,你能展示一个类似于我的代码的例子吗?
【解决方案2】:

axios.get(${URL}) .then(response => console.log(response.data) .catch(err)=> console.log(err)


就是当你使用 axios (npm i axios) 然后导入它

【讨论】:

    【解决方案3】:

    我认为您正在寻找的是Fetch-API。例如,

    const ROUTE = resourcePath + '?' + new URLSearchParams({ ...params })
    
    fetch(ROUTE) // sends a GET request
      .then((res: Response) => res.json() as MyExpectedDataType) // parses JSON response content
      .then((data: MyExpectedDataType) => {
        // do something with data
      })
      .catch(err => {
      })
    
    // or
    async function showRoute(): Promise<Something> {
      try {
        const res: Response = await fetch(ROUTE)
        const data = await res.json() as MyExpectedDataType
        // do something with data
      }
      catch (err) {
      }
    }
    

    fetch 返回一个 Promise 类型,您可以在该类型上使用 .then 链接异步回调,并使用 .catch.finally 处理错误。您还可以将请求方法、标头、正文内容等作为可选的第二个参数传递给fetch,请参阅文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2021-07-21
      • 2021-06-11
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      相关资源
      最近更新 更多