sha*_*rsn 5 javascript node.js async-await ecmascript-6
async function(req, res) {
try {
const user = await userCtrl.getUser();
const userMaps = await mapsCtrl.findDetails(user.mapId);
res.send(userMaps);
} catch (error) {
//handle error
res.status(400).send(error)
}
}
// user controll
function getUser() {
return new Promise(function(resolve, reject) {
//data base read using mysql
req.app.get("mysqlConn").query(query, function(error, results, fields) {
if (error) {
reject(error);
}
resolve(results);
});
})
}
//maps controller function is also like above one.
Run Code Online (Sandbox Code Playgroud)
这是快速获取路线的代码句柄部分。有时拒绝的代码没有被捕获。我收到200状态代码中从MySQL返回的错误。
是的,您可以在单个 try catch 块中编写多个等待。因此,如果上述任何等待失败,您的 catch 块将收到错误。有关 async-await 的更多信息,请参阅此链接 - https://javascript.info/async-await
拒绝()或解决()并不意味着功能被终止。所以我们必须显式地从函数返回以避免进一步的代码执行。在您的情况下,将 resolve 放在 else 块中,或者在调用拒绝之后将 return 语句放在 if 块中!有关更多信息,请参阅此链接:-我需要在提前解决/拒绝后返回吗?
我希望这有助于:) 问候。
归档时间: |
|
查看次数: |
3277 次 |
最近记录: |