2017-06-05 136 views
1

我有一個等待用戶輸入的自定義確認對話框。我把它包裝在一個承諾中。完成承諾沒有拒絕/解決?

當用戶選擇「是」替代我resolve的承諾。

然而,當用戶選擇no這不是一個真正的錯誤,但更多的是不應該執行下一個任務。

我該如何處理該承諾的情況?簡單地不調用解決方案/拒絕還是有更好的方法?

+0

嗯,在我看來'no'意思是「拒絕」,「拒絕」並不一定意味着錯誤,這可能意味着下一個行動不應該發生。 – Cristy

+1

'只是不調用解決方案/拒絕'將意味着連鎖攤位!你可以拒絕,用聰明的代碼你可以做你需要的東西 –

+0

當用戶選擇「yes」時,你也可以「解析」並傳遞一個布爾值,「true」和「false」爲「no」。 – Arg0n

回答

2

您可以解析一個值並在之後檢查該值。

new Promise((resolve, reject) => { 
    const userInput = confirm('Do you want to continue?'); 
    resolve(userInput); 
}).then(input => { 
    if(input) { 
     // Do something 
    } else { 
     // Do something else 
    } 
});