[英]How to return error from asynchronous call
我有一個寫在文件中的函數。
async myfunction() {
try {
const data = await achievementService.stepsPerDayAchievement()
console.log(data)
} catch(err) {
console.log(err)
}
}
我從這里調用另一個函數,該函數寫在另一個名為成就的文件中。
async stepsPerDayAchievement(user, stepsCount) {
try {
await ApiCall()
} catch (err) {
return err
}
}
但是,當我從此函數返回err時,它假定它為函數return,並且我得到data
錯誤。 我需要的是,當我從stepsPerDayAchievement
函數拋出錯誤時,它轉到我的第一個function
文件中的錯誤部分
有人可以幫我在這里做錯什么嗎
您需要從stepsPerDayAchievement方法引發錯誤:
async stepsPerDayAchievement(user, stepsCount) {
try {
await ApiCall()
} catch (err) {
throw new Error(err);
}
}
這樣,它將落在調用函數的catch塊中。
由於異步函數返回Promise,因此您無需在stepsPerDayAchievement函數中嘗試catch塊。 我認為您的代碼應如下所示:
async myfunction() {
const data = await achievementService.stepsPerDayAchievement()
.then(()=> console.log(data);)
.catch(()=> console.err("error");)
}
async stepsPerDayAchievement(user, stepsCount) {
var apiCallResultData = await ApiCall();
return apiCallResultData
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.