Reactjs 将承诺的值返回给另一个函数
我试图在renderSelect中获取Reactjs 将承诺的值返回给另一个函数,reactjs,promise,Reactjs,Promise,我试图在renderSelect中获取PromiseValue。(在tmp中) 问题是我得到了一个承诺,这是正常的行为。但我不明白我如何才能得到承诺中的价值观,这样我才能与他们合作 我有一个ApiService类,如下所示 handleResponse(response) { if (response.status >= 200 && response.status < 300) { return response.json(); } return
PromiseValue
。(在tmp
中)
问题是我得到了一个承诺,这是正常的行为。但我不明白我如何才能得到承诺中的价值观,这样我才能与他们合作
我有一个ApiService
类,如下所示
handleResponse(response) {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
return response.json()
.then((res) => {
throw new Error(res.message);
},
() => {
throw new Error();
});
}
get(url) {
return fetch(`${this.API_URL}${url}`, {
method: 'GET',
headers: this.headers,
})
.then(response => this.handleResponse(response));
}
您可以使用Javascript返回对renderSelect
const getOptions = (contractor_employee_id) => {
const apiService = new ApiService()
return new Promise((resolve, reject) => {
apiService
.get(`some_url`)
.then(
response => {
resolve(["toto", "tata", "titi"]);
},
err => (console.log("Failed") reject('failed');)
);
};
})
}
const renderSelect = (field) => {
getOptions(field.id).then((res) => {
console.log(tmp);
})
}
承诺是异步的。如果您希望以同步方式返回承诺结果,请使用async/await
const renderSelect = async (field) => {
const tmp = await getOptions(field.id)
console.log(tmp)
}
const renderSelect = async (field) => {
const tmp = await getOptions(field.id)
console.log(tmp)
}