簡體   English   中英

(節點:2256)UnhandledPromiseRejectionWarning:未處理的 promise 拒絕

[英](node:2256) UnhandledPromiseRejectionWarning: Unhandled promise rejection

我想用 nodejs 做一個 whatapp 機器人。 我想補充一個論點。 我的代碼是這樣的:

                case 'brainly':
                const args = process.argv
                    brainly(args).then(res => {
                        for(var i=0; i<res.length; i++){
                        var jawab = res[i].jawaban
                        client.sendText(from, jawab[0].text)
                        }
                    })
                break

但是,當我運行它時,它顯示如下錯誤:

(節點:7960)UnhandledPromiseRejectionWarning:未處理的 promise 拒絕。 此錯誤源於在沒有 catch 塊的情況下拋出異步 function,或者拒絕未使用 .catch() 處理的 promise。

如何解決這個問題? 請幫我。

這意味着在異步上下文中的某處,很可能在通過調用brainly(args)創建的 promise 內部,發生了錯誤,並且沒有被捕獲和處理。

要開始使用異步 Javascript,我建議查找一些有關Javascript Promises 和異步函數(隱式生成 promises,並允許使用await語法)的文章。

沒有真正簡單的方法來解釋。 Javascript 是一種單線程語言,但它通過使用回調、promises 和 async/await 語法(它們都源自回調)提供了出色的並發性。 任何不會立即發生的事情,例如網絡/磁盤操作,都是異步的,必須以適當的方式處理。 這可能會讓新手感到困惑,因為它打破了線性異步執行流程。

承諾是可以創建的對象,將來會解決拒絕 通過在 promise 上調用.then ,您將給它一個回調 function ,當它最終到達時,將使用已解析的值調用該回調。 您還應該在末尾添加一個.catch(err => {... })處理程序來處理錯誤,由於您傳遞的 arguments 可能出於某種原因拋出錯誤。

暫無
暫無

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

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