如何处理承诺响应



好的,所以我有这种情况,我需要向端点请愿,并获得我实际要使用的后端的URL。我有一个带有api配置的文件,在这里我用axios创建了实例。

在它像这样工作之前,通过这种方式,我可以在任何需要的地方使用端点:

import axios from "axios";
const url =   process.env.API_URL
const instance = axios.create({
baseURL: url,
});
export default instance;

这就是我现在要做的:

import axios from "axios";
import qs from "qs";
const urlParams = new URLSearchParams(window.location.search);
const url_endpoint = process.env.URL_ENDPOINT;
const param = urlParams.get("param");
const data = {
f: "json",
outFields: "*",
where: `search_field='${param}'`,
};
const options = {
method: "POST",
headers: {
"content-type": "application/x-www-form-urlencoded",
},
data: qs.stringify(data),
url: url_endpoint,
};
const getAPIurl = axios(options).then((res) => {
console.log(res, "petition1");
return res.data.features[0].attributes.url_base_pub;
});
const apiURL = async () => {
const url = await getAPIurl;
console.log(url, "petition2");
return url;
};
const instance = axios.create({
baseURL: apiURL(),
});
export default instance;

当我做console.log(apiURL())时,我得到的只是一个承诺,我需要传递url的值,但我还没有找到这样做的方法。

您可以尝试类似的东西

const value = await apiURL();

然后您应该将URL作为值变量。由于您已经将apiURL((定义为异步函数,因此即使我们没有显式返回promise,它也将始终隐式返回promise。你可以在这里读到https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

最新更新