From d44f5032d0f53256b2d5aef505d6b593fd3cd158 Mon Sep 17 00:00:00 2001 From: Irvin Date: Wed, 16 Feb 2022 02:14:18 +0800 Subject: fix yari h2m dry run errors (zh-CN) --- .../reference/statements/async_function/index.html | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'files/zh-cn/web/javascript/reference/statements/async_function') diff --git a/files/zh-cn/web/javascript/reference/statements/async_function/index.html b/files/zh-cn/web/javascript/reference/statements/async_function/index.html index ba79f6a5d2..5088f77130 100644 --- a/files/zh-cn/web/javascript/reference/statements/async_function/index.html +++ b/files/zh-cn/web/javascript/reference/statements/async_function/index.html @@ -35,22 +35,21 @@ translation_of: Web/JavaScript/Reference/Statements/async_function
要传递给函数的参数的名称。
statements
包含函数主体的表达式。可以使用await机制。
-
-

返回值

-
-
一个{{jsxref("Promise")}},这个promise要么会通过一个由async函数返回的值被解决,要么会通过一个从async函数中抛出的(或其中没有被捕获到的)异常被拒绝。
+

返回值

+

一个{{jsxref("Promise")}},这个promise要么会通过一个由async函数返回的值被解决,要么会通过一个从async函数中抛出的(或其中没有被捕获到的)异常被拒绝。

+

描述

async函数可能包含0个或者多个{{jsxref("Operators/await", "await")}}表达式。await表达式会暂停整个async函数的执行进程并出让其控制权,只有当其等待的基于promise的异步操作被兑现或被拒绝之后才会恢复进程。promise的解决值会被当作该await表达式的返回值。使用async / await关键字就可以在异步代码中使用普通的try / catch代码块。

-

await关键字只在async函数内有效。如果你在async函数体之外使用它,就会抛出语法错误 {{jsxref("SyntaxError")}} 。

+

备注:await关键字只在async函数内有效。如果你在async函数体之外使用它,就会抛出语法错误 {{jsxref("SyntaxError")}} 。

-

async/await的目的为了简化使用基于promise的API时所需的语法。async/await的行为就好像搭配使用了生成器和promise。

+

备注:async/await的目的为了简化使用基于promise的API时所需的语法。async/await的行为就好像搭配使用了生成器和promise。

async函数一定会返回一个promise对象。如果一个async函数的返回值看起来不是promise,那么它将会被隐式地包装在一个promise中。

@@ -200,6 +199,7 @@ setTimeout(parallelPromise, 13000); // same as parallel
+

备注:

await and parallelism(并行)

sequentialStart中,程序在第一个await停留了2秒,然后又在第二个await停留了1秒。直到第一个计时器结束后,第二个计时器才被创建。程序需要3秒执行完毕。

@@ -213,6 +213,7 @@ setTimeout(parallelPromise, 13000); // same as parallel
+

警告:

async/await和Promise#then对比以及错误处理

大多数async函数也可以使用Promises编写。但是,在错误处理方面,async函数更容易捕获异常错误

@@ -255,8 +256,8 @@ setTimeout(parallelPromise, 13000); // same as parallel

注意,在上述示例中,return 语句中没有 await 操作符,因为 async function 的返回值将被隐式地传递给 {{jsxref("Promise.resolve")}}

-
-

return await promiseValue; 与 return promiseValue;的比较

+
+

备注:

返回值隐式的传递给{{jsxref("Promise.resolve")}},并不意味着return await promiseValue;和return promiseValue;在功能上相同。

-- cgit v1.2.3-54-g00ecf