changeset 2787:005b056c267f

Added note about async calls for js_body_filter, js_header_filter.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 21 Oct 2021 15:11:56 +0100
parents 6b3a80a735bf
children 03b49685c056
files xml/en/docs/http/ngx_http_js_module.xml xml/ru/docs/http/ngx_http_js_module.xml
diffstat 2 files changed, 58 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_js_module.xml
+++ b/xml/en/docs/http/ngx_http_js_module.xml
@@ -9,7 +9,7 @@
 <module name="Module ngx_http_js_module"
         link="/en/docs/http/ngx_http_js_module.html"
         lang="en"
-        rev="32">
+        rev="33">
 
 <section id="summary">
 
@@ -213,6 +213,19 @@ it is required to clear out the <header>
 to enforce chunked transfer encoding.
 </para>
 
+<para>
+<note>
+As the <literal>js_body_filter</literal> handler
+returns its result immediately, it supports
+only synchronous operations.
+Thus, asynchronous operations such as
+<link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
+or
+<link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>
+are not supported.
+</note>
+</para>
+
 </directive>
 
 
@@ -321,6 +334,19 @@ Sets an njs function as a response heade
 The directive allows changing arbitrary header fields of a response header.
 </para>
 
+<para>
+<note>
+As the <literal>js_header_filter</literal> handler
+returns its result immediately, it supports
+only synchronous operations.
+Thus, asynchronous operations such as
+<link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
+or
+<link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>
+are not supported.
+</note>
+</para>
+
 </directive>
 
 
@@ -430,8 +456,8 @@ right before the request is freed.
 <note>
 As the <literal>js_set</literal> handler
 returns its result immediately, it supports
-only synchronous callbacks.
-Thus, asynchronous callbacks such as
+only synchronous operations.
+Thus, asynchronous operations such as
 <link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
 or
 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>
--- a/xml/ru/docs/http/ngx_http_js_module.xml
+++ b/xml/ru/docs/http/ngx_http_js_module.xml
@@ -9,7 +9,7 @@
 <module name="Модуль ngx_http_js_module"
         link="/ru/docs/http/ngx_http_js_module.html"
         lang="ru"
-        rev="32">
+        rev="33">
 
 <section id="summary">
 
@@ -213,6 +213,19 @@ function filter(r, data, flags) {
 чтобы применить поблочное кодирование.
 </para>
 
+<para>
+<note>
+Так как обработчик <literal>js_body_filter</literal>
+должен сразу возвращать результат,
+то поддерживаются только синхронные операции,
+Таким образом, асинхронные операции, например
+<link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
+или
+<link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>,
+не поддерживаются.
+</note>
+</para>
+
 </directive>
 
 
@@ -320,6 +333,19 @@ HTTPS-сертификата
 Директива позволяет менять произвольные поля заголовка ответа.
 </para>
 
+<para>
+<note>
+Так как обработчик <literal>js_header_filter</literal>
+должен сразу возвращать результат,
+то поддерживаются только синхронные операции,
+Таким образом, асинхронные операции, например
+<link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
+или
+<link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>,
+не поддерживаются.
+</note>
+</para>
+
 </directive>
 
 
@@ -430,8 +456,8 @@ function version(r) {
 <note>
 Так как обработчик <literal>js_set</literal>
 должен сразу возвращать результат,
-то поддерживаются только синхронные вызовы,
-Таким образом, асинхронные вызовы, например
+то поддерживаются только синхронные операции,
+Таким образом, асинхронные операции, например
 <link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link>
 или
 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>,