Just define it in the parent scope. It has extra line if compare with var, but I think this code is more obvious, because there is no implicit hoisting.
var
async function foo() { let stuff; try { stuff = await unsafe_stuff(); } catch (err) { return Promise.reject(err.message); } console.log(stuff); }
That is what I'm trying to avoid. And you could still do the same with var.
I choose to believe var's implicit hoisting is a feature and not a bug.
I agree, this is a valid use case for var if you prefer implicit hoisting.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Just define it in the parent scope. It has extra line if compare with
var
, but I think this code is more obvious, because there is no implicit hoisting.That is what I'm trying to avoid. And you could still do the same with
var
.I choose to believe
var
's implicit hoisting is a feature and not a bug.I agree, this is a valid use case for
var
if you prefer implicit hoisting.