From 82521141d735a24417de38df0dc33d174829fa33 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 3 Mar 2023 00:46:47 +0800 Subject: [PATCH] Improve frontend guideline (#23252) If an event listener must be `async`, the `e.preventDefault()` should be before any `await`, it's recommended to put it at the beginning of the function. --- doc/developers/guidelines-frontend.en-us.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/developers/guidelines-frontend.en-us.md b/doc/developers/guidelines-frontend.en-us.md index 7f4d87d9..66d3e83e 100644 --- a/doc/developers/guidelines-frontend.en-us.md +++ b/doc/developers/guidelines-frontend.en-us.md @@ -83,6 +83,9 @@ It's not recommended to use `async` event listeners, which may lead to problems. The reason is that the code after await is executed outside the event dispatch. Reference: https://github.com/github/eslint-plugin-github/blob/main/docs/rules/async-preventdefault.md +If an event listener must be `async`, the `e.preventDefault()` should be before any `await`, +it's recommended to put it at the beginning of the function. + If we want to call an `async` function in a non-async context, it's recommended to use `const _promise = asyncFoo()` to tell readers that this is done by purpose, we want to call the async function and ignore the Promise.