我正在使用try catch語句。在我的try語句中,我只想返回從函數中獲取的值,這些函數在try catch語句之外定義。但是,這些值是未定義的。在try catch中未定義的值
我加入以下代碼片段:
const request = User.friendRequest(userId, friendId, (err, friendshipRequest) => {
if (err) throw err;
return friendshipRequest;
});
如果我CONSOLE.LOG(friendshipRequest)的回調函數內,一切正常般的魅力,我得到我想要的JSON對象。但是,當我嘗試在try語句中使用const request
- const request
變得未定義。
try {
return res.status(201).json({
error: false,
request,
});
} catch (e) {
return res.status(400).json({ error: true, message: e.errsmg });
}
完整的代碼看起來像這樣
export const sendFriendRequest = async (req, res) => {
const { userId, friendId } = req.params;
const request = await User.friendRequest(userId, friendId, (err, friendshipRequest) => {
if (err) throw err;
return friendshipRequest;
});
try {
return res.status(201).json({
error: false,
request,
});
} catch (e) {
return res.status(400).json({ error: true, message: e.errsmg });
}
};
'User.friendRequest'似乎並沒有返回一個承諾,當你傳遞一個回調到它。 – Bergi
可能的重複[未定義的值在try catch](http://stackoverflow.com/q/43836415/1048572)?! – Bergi