Created
April 19, 2018 13:53
-
-
Save ibratoev/3723891d81b98b94f7dec04b979164ff to your computer and use it in GitHub Desktop.
Async-await vs then with not well behaving functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const shouldReturnPromise = () => { throw "test"; } | |
const withAsyncAwait = async () => { | |
try { | |
await shouldReturnPromise() | |
} catch (e) { | |
console.log('Handled: ' + e) | |
} | |
} | |
const withPromise = async () => { | |
shouldReturnPromise().then(null, () => console.log('Not Handled!')); | |
} | |
console.log(withAsyncAwait()); | |
console.log(withPromise()); |
I understand that this is corner case (hence the title with not well behaving functions
) ;) But it just makes me feel safer using async/await.
They try-catch
on their side, so no needs for one more I think
My example was for the general discussion not for the particular case ;)
Yes, sure. But since the discussion has been running for the whole afternoon, I just wanted to make sure that we are aligned on how the current code behave and why try-catch
wouldn't be required in that case because Promise.catch
would have the same effect
Totally aligned 👍 The current code was moved from the Hype project. I would use async/await
as I find it safer and simpler.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In a perfect world it would not make a difference.
From what I've seen in reality, it is hard to make sure you always return promises and not throw errors without using async/await.