我有以下函式呼叫 api
useEffect(() => {
loadMarkets();
}, []);
async function loadMarkets() {
const marketInformation = await frService.getMarketInfo();
addMarketInfo(marketInformation.response.data);
}
我想對loadBooks(). 如果我不介意哪個方法先出現,我是否可以像下面那樣呼叫它,還是應該將它包裝在 1 個異步函式中/將它包裝在 Promise 中?
useEffect(() => {
loadMarkets();
loadBooks();
}, []);
async function loadMarkets() {
const marketInformation = await frService.getMarketInfo();
addMarketInfo(marketInformation.response.data);
}
async function loadBooks() {
....
uj5u.com熱心網友回復:
loadMarkets();
loadBooks();
因為這些函式以async關鍵字為前綴,所以這些都是promise。loadBooks 將在 loadMarkets 完成之前觸發。
簡單的回答,是的,你可以按照你寫的那樣做,但是我會嘗試用類似的方法來捕捉錯誤
loadMarkets().catch(doSomethingIfThereIsAnError)
哪里doSomethingIfThereIsAnError會有一個函式來做一些...
uj5u.com熱心網友回復:
哪個先出現并不重要,因為它們都是async. 在您的組件的初始呈現期間,useEffect將呼叫這兩個async函式。如果您需要檢查首先呼叫哪個 api 端點以及執行所需的時間,您可以打開瀏覽器開發工具并檢查網路選項卡。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318798.html
上一篇:Kotlin協程有顏色嗎?
