Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript response.text不是生成react本机应用程序时的函数_Javascript_Reactjs_Api_React Native_Expo - Fatal编程技术网

Javascript response.text不是生成react本机应用程序时的函数

Javascript response.text不是生成react本机应用程序时的函数,javascript,reactjs,api,react-native,expo,Javascript,Reactjs,Api,React Native,Expo,我正在尝试使用expo构建react本机应用程序,在尝试注册时,我从api.js文件中收到以下错误消息: response.text不是一个函数。(在“response.text()”中,“response.text”未定义) 这是我的密码: const BASE_URL = "my local IP:5000"; export const api = async (url, method, body = null, headers = {}) => { try { const

我正在尝试使用expo构建react本机应用程序,在尝试注册时,我从api.js文件中收到以下错误消息:

response.text不是一个函数。(在“response.text()”中,“response.text”未定义)

这是我的密码:

const BASE_URL = "my local IP:5000";


export const api = async (url, method, body = null, headers = {}) => {

try {
  const endPoint = BASE_URL.concat(url);
  const reqBody = body ? JSON.stringify(body) : null;

  const fetchParams = {method, headers};

  if((method === "POST" || method === "PUT") && !reqBody) {
      throw new Error("Request body required");
  }

  if(reqBody) {
      fetchParams.headers["Content-type"] = "application/json";
      fetchParams.body = reqBody;
  }

  const fetchPromise = fetch(endPoint, fetchParams);
  const timeOutPromise = new Promise((resolve, reject) => {
      setTimeout(() => {
          reject("Request Timeout");
      }, 3000);
  });

  const response = await Promise.race([fetchPromise, timeOutPromise]);

  return response;
} catch (e) {
  return e;
}
}

export const fetchApi = async (url, method, body, statusCode, token = null, loader = false) 
=> {
try {
    const headers = {}
    const result = {
        token: null,
        success: false,
        responseBody: null
    };
    if(token) {
        headers["x-auth"] = token;
    }

    const response = await api(url, method, body, headers);

    console.log(response);

    if(response.status === statusCode) {
        result.success = true;

        if(response.headers.get("x-auth")) {
            result.token = response.headers.get("x-auth");
        }
这里是response.text()

这里是response.text()


任何帮助都将不胜感激

你能提供控制台日志(响应)的结果吗?似乎
响应
是字符串
“请求超时”
。检查您的api请求是否未计时out@DragonWhite对象{“isError”:true,“isLoading”:false,“issucess”:false,}我是指
console.log(response)的结果是对象还是文本?@DragonWhite对象
        let responseBody;
        const responseText = await response.text();
        //const responseText = await response.json();

        try {
            responseBody = JSON.parse(responseText);
        } catch (e) {
            responseBody = responseText;
        }

        result.responseBody = responseBody;
        return result;

    }
    let errorBody;
    const errorText = await response.text();
    //const errorText = await response.json();

    try {
        errorBody = JSON.parse(errorText);
    } catch (e) {
        errorBody = errorText;
    }

    result.responseBody = errorBody;

    console.log(result);

    throw result;
} catch (error) {
    return error;
}
}