簡體   English   中英

切換案例內的Nodejs Promise給出錯誤

[英]Nodejs Promise inside switch case giving error

我嘗試了類似問題的stackoverflow上提到的各種方法,但仍然無法解決問題。 我有一個包含各種開關案例的普通函數(不是異步函數)。 我有一個單獨的功能,可以解決或拒絕。 例如-

function Student (req) {
const id = req.id
const count = req.num
for (i=0;i<num,i++)
{
switch(id){
case 'a':
feesPaid=true
break;

case 'b':
const a = await getStudent (id) // gives error under getStudent that unexpected token eslint

getStudent (id).then((result)=>{
if(result.reciept){
feesPaid=true
}else{
feesPaid=false. // Returning pending promise which doesn't return anything, tried return feesPaid as well
}
}). catch (e)...
break;
}
}
}

由於某種原因我無法使用此功能,有什么辦法可以返回費用支付值嗎? 似乎它沒有更新任何內容或任何檢查。 feePaid 值是必要的,因為它用於進一步計算。 請幫忙。

有幾種方法可以解決這個問題:

  1. 將函數更改為async function
  2. 返回一個 Promise。
  3. 使您的函數接受回調。

無論你做什么,它總是會影響其他代碼塊。

使用.then()將不起作用,因為該函數將在 Promise 解析之前很久就返回。 只返回feesPaid行不通的,因為Promise 在feesPaid被賦值之前還沒有完成。

解決您的問題最簡單的方法是修改您的函數以使用async/await ,並修改所有受影響的代碼以使用async/await

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM