,我最近開始用NodeJS編程,所以我是初學者。我正在使用Sequelize. 當我呼叫函式sequelize.sync()時,它會在我的資料庫中創建表(我定義的)。無論如何,如果我在函式旁邊立即執行查詢sequelize.sync(),我會得到一個錯誤。我認為問題在于查詢是在 結束之前執行的sequelize.sync(),所以我需要等待sequelize.sync(). 代碼很簡單:
sequelize.sync({force: true});
Users.create({name: "A", surname: "B", number: 1});
錯誤是:
(node:2561) UnhandledPromiseRejectionWarning: Error
at Query.run (/mnt/c/Users/raffa/Desktop/simple_app/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)
at retry (/mnt/c/Users/raffa/Desktop/simple_app/node_modules/sequelize/lib/sequelize.js:313:28)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:2561) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
我怎么解決這個問題?謝謝!
uj5u.com熱心網友回復:
要等待回傳 Promise 的異步函式,例如 sequelize.sync(),您只需添加await關鍵字。
await sequelize.sync({force: true});
Users.create({name: "A", surname: "B", number: 1});
Users.create如果您想在之后做某事,也不要忘記等待。始終等待異步函式通常是最佳實踐。
注意:頂級等待僅適用于 ESModules。否則,您必須將整個代碼包裝在異步 IIFE 中
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453712.html
標籤:javascript 节点.js 异步 续集.js 同步
上一篇:異步任務完成后如何呼叫函式?
下一篇:對異步行為感到困惑
