From fd6372abb8b343ef493a583237e4838a4eb1c456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=AD=E5=9F=8E=E5=B0=8F=E5=88=98?= Date: Sun, 20 Jun 2021 22:05:12 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BB=8E=20Flutter=20=E5=92=8C?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E8=A7=92=E5=BA=A6=E5=87=BA=E5=8F=91=EF=BC=8C?= =?UTF-8?q?=E8=81=8A=E8=81=8A=E5=8D=95=E7=BA=BF=E7=A8=8B=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=B8=8B=E5=A6=82=E4=BD=95=E4=BF=9D=E8=AF=81=20UI=20=E6=B5=81?= =?UTF-8?q?=E7=95=85=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Chapter1 - iOS/1.95.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Chapter1 - iOS/1.95.md b/Chapter1 - iOS/1.95.md index a0b4bfc..cc4c412 100644 --- a/Chapter1 - iOS/1.95.md +++ b/Chapter1 - iOS/1.95.md @@ -333,7 +333,9 @@ sub subTask 2 Future 4 异步函数的结果在将来某个时刻才返回,所以需要返回一个 Future 对象,供调用者使用。调用者根据需求,判断是在 Future 对象上注册一个 then 等 Future 执行体结束后再进行异步处理,还是同步等到 Future 执行结束。Future 对象如果需要同步等待,则需要在调用处添加 **await**,且 Future 所在的函数需要使用 **async** 关键字。 -await 并不是同步等待,而是异步等待。Event Loop 会将调用体所在的函数也当作异步函数,将等待语句的上下文整体添加到 Event Queue 中,一旦返回,Event Loop 会在 Event Queue 中取出上下文代码,等待的代码继续执行 +await 并不是同步等待,而是异步等待。Event Loop 会将调用体所在的函数也当作异步函数,将等待语句的上下文整体添加到 Event Queue 中,一旦返回,Event Loop 会在 Event Queue 中取出上下文代码,等待的代码继续执行。 + +await 阻塞的是当前上下文的后续代码执行,并不能阻塞其调用栈上层的后续代码执行 ```dart void main() { @@ -407,6 +409,8 @@ data: 3 此外 Flutter 中提供了执行并发计算任务的快捷方式-**compute 函数**。其内部对 Isolate 的创建和双向通信进行了封装。 +实际上,业务开发中使用 compute 的场景很少,比如 JSON 的编解码可以用 compute。 + 计算阶乘: ```dart