[英]Best way to Handle Exception Globally in Node.js with Express 4?
[英]Node.js best way to handle promises
所以我的 controller 中有這樣的代碼。
const Users = require("../models/users");
class UserController() {
getUserById(req, res) {
const id = req.params.id;
const users = new Users();
const userData = users.getUserById(uid).then(function(result) {
//Do other logic here that depends on db result
return res.status(200).json({status:"success", user: result});
});
}
}
我的問題是,這與以下有什么區別,哪個是更好的做法?
const Users = require("../models/users");
class UserController() {
async getUserById(req, res) {
const id = req.params.id;
const users = new Users();
const userData = await users.getUserById(uid);
return res.status(200).json({status:"success",user:userData});
}
}
第二個 function 調用使用了 ES8 的async-await特性,這使得我們的代碼看起來也是同步和干凈的,無需在其中執行.then()和回調。 fetch()和async-await都可以在 promise 上工作。
如果我可以這樣說, Aync-Await 的可讀性會更高。 這里沒有使用回調。 它只是等待第一個 API 調用發生,並且只有當數據到達(或 Promise 已解決)時,我們才會觸發另一個 API 調用。 對於程序員本身來說,使用 Async-Await 語法變得不那么容易了。
對於錯誤處理,您將需要Aync-await中的try{} catch{}
塊,但在fetch()的情況下, .catch()塊會為我們處理 API 錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.