From 12868e39a15760bf24a9d238f340a196a5ae4191 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 18 Jan 2022 10:13:34 -0800 Subject: [PATCH] doc: edit async_context context loss text Make the text more concise and clear. PR-URL: https://github.com/nodejs/node/pull/41550 Reviewed-By: James M Snell Reviewed-By: Benjamin Gruenbaum --- doc/api/async_context.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/doc/api/async_context.md b/doc/api/async_context.md index 137a84151f0da1..1194a313f45553 100644 --- a/doc/api/async_context.md +++ b/doc/api/async_context.md @@ -316,22 +316,19 @@ functions called by `foo`. Outside of `run`, calling `getStore` will return ### Troubleshooting: Context loss -In most cases your application or library code should have no issues with -`AsyncLocalStorage`. But in rare cases you may face situations when the -current store is lost in one of the asynchronous operations. In those cases, -consider the following options. +In most cases, `AsyncLocalStorage` works without issues. In rare situations, the +current store is lost in one of the asynchronous operations. If your code is callback-based, it is enough to promisify it with -[`util.promisify()`][], so it starts working with native promises. +[`util.promisify()`][] so it starts working with native promises. -If you need to keep using callback-based API, or your code assumes +If you need to use a callback-based API or your code assumes a custom thenable implementation, use the [`AsyncResource`][] class -to associate the asynchronous operation with the correct execution context. To -do so, you will need to identify the function call responsible for the -context loss. You can do that by logging the content of -`asyncLocalStorage.getStore()` after the calls you suspect are responsible for -the loss. When the code logs `undefined`, the last callback called is probably -responsible for the context loss. +to associate the asynchronous operation with the correct execution context. +Find the function call responsible for the context loss by logging the content +of `asyncLocalStorage.getStore()` after the calls you suspect are responsible +for the loss. When the code logs `undefined`, the last callback called is +probably responsible for the context loss. ## Class: `AsyncResource`