Is it okay to make a function async if it doesn't need to be async? - a podcast by Kent C. Dodds

from 2021-02-09T03:48:56

:: ::

Hey friends so I got a question on discord from somebody who asked
effectively is it okay to put async away on a function that doesn't need it
and you can get useless rules that will prevent this. I think I have theenabled because I don't typically want to do this but there are situations
sometimes where you want to start with an API that isn't asynchronous now
but you're pretty confident that it's going to be asynchronous in the
future and it's just easier.
To plan with that asynchrony from the get-go rather than try to retrofiteverything to work with asynchrony in the future and so yes, it's I think
it's acceptable and it's okay to make something async when it doesn't need
to be and you just have to be aware that any consumer is going to have toconsume an async API rather than a synchronous one and you'll have to
consider the fact that because it's async it it is like as soon as you
attach that async keyword onto the function onto the function keyword likeright in front of that function keyword or in front of theParentheses if
you're doing an arrow function whatever as soon as you put that async
keyword on there it immediately means that no matter what the function doesit's returning a promise and the any consuming code cannot proceed until
the next tick of the event loop, you know, I'm talking about like if the
consuming code is using async away if it's using promises with dot then
then the the success handler of that promise is going to run on the nexttick of the event loop and so that means that just has some interesting
implications around you know closures andStillness and but in in practicethat's not normally going to be too much of an issue so I would say that
yeah it's okay to put async on a function that doesn't need it but I
wouldn't do it for no reason so like there would need to be an explanation
and in a code base where you have coworkers who are going to look at thiscode and and even yourself who's going to look at this code in the future,
it would be useful for you to write a code comment to explain why you're
doing this so that people don't remove it and then accidentally break some
consuming code because you're not using type script, for example.
If you're using textcript then you know, maybe it's okay, but anyway, I
hope that is useful to you and I hope that you had a marvelous day in thator that you're going to whenever this is, you know, good afternoon good
evening tonight. Truman shows now and I'll talk to you later bye.

Further episodes of 3 Minutes with Kent

Further podcasts by Kent C. Dodds

Website of Kent C. Dodds