You might be thinking that these two approaches are the same. But there is a crucial difference between return and return await.
When we deal with promises, such as database queries, we commonly use await. For example:
async function getUserById(userId) { const user = await userRepository.findById(userId); return user; }
However, in this case, it is not strictly necessary to use await. We can write it like this:
function getUserById(userId) { return userRepository.findById(userId); }
Both options will work normally.
When we have a try/catch block, the behavior is different, and if you're unaware of this, it can cause unexpected errors.
function getUserById(userId) { try { return userRepository.findById(userId); } catch (error) { console.error(error.message); } }
If an error occurs in findById, it won't be caught, and this will likely become a problem. This is where we need to use return await.
async function getUserById(userId) { try { return await userRepository.findById(userId); } catch (error) { console.error(error.message); } }
Now, we are safe, and any error will fall into the catch block.
In summary, if we need to handle and process errors in a catch block, we must use return await to ensure the application operates correctly.
The above is the detailed content of Difference between return and return await in JavaScript. For more information, please follow other related articles on the PHP Chinese website!