Bagaimana untuk mengembalikan data daripada respons Promise
P粉988025835
2023-07-28 10:32:51
<p>Bagaimana untuk mengembalikan data daripada Promise dengan betul? Saya mempunyai kod berikut: </p>
<pre class="brush:php;toolbar:false;">const axios = require("axios").default;
fungsi async getApiData(pathName: string, locale: string) {
const {axiosRequestUrl} = getApiVars(pathName, locale);
const axiosClient = axios.create({
baseURL: process.env.CONTENT_DOMAIN,
proksi: palsu
})
kembali menanti axiosClient.get(axiosRequestUrl);
}
eksport fungsi lalai getPageData() {
getApiData('kandungan kongsi', 'en-us')
.then((data) => {
mengembalikan data;
})
.catch((ralat: mana-mana) => {
// ralat log di sini
})
}</pre>
<p>Walau bagaimanapun, jika saya cuba menggunakan getPageData daripada komponen, saya berakhir dengan fungsi lompang yang tidak mengembalikan apa-apa, mengapa? Apa yang saya hilang di sini? </p>
Sekurang-kurangnya, fungsi getPageData anda sendiri mestilah fungsi async (untuk kejelasan kebolehbacaan kod) yang akan mengembalikan Janji yang dikembalikan oleh panggilan getApiData.
Contohnya:
Dua petua lanjut:
Anda perlu menyelesaikan Janji ini untuk membaca data.
Anda boleh memutuskan untuk melakukan pengendalian ralat di sini atau di atas hierarki panggilan
Peraturan praktikal:
fungsi async hanyalah fungsi yang mengembalikan objek Promise.
Data sebenar hanya akan dikembalikan apabila Janji diselesaikan (menggunakan await atau .then())