From 0a9a3c2a6df00dec405da1d8d07f1f72548e9e7b 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. --- docs/content/doc/developers/guidelines-frontend.en-us.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/content/doc/developers/guidelines-frontend.en-us.md b/docs/content/doc/developers/guidelines-frontend.en-us.md index 7f4d87d901..66d3e83e93 100644 --- a/docs/content/doc/developers/guidelines-frontend.en-us.md +++ b/docs/content/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.