栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

好坏:在Dart / Flutter中声明主要方法异步

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

好坏:在Dart / Flutter中声明主要方法异步

main方法如何被调用以及在Dart / Flutter中通常如何工作?

Dart
VM(或AOT模式下的运行时)查找并执行名为的函数

main
。后
main
返回时,VM将等待退出前挂起到完整的异步操作。在异步编程官方飞镖网站上的文章有演示这样的例子:

7.

main()
执行完,异步功能可以恢复执行。首先,由归还的未来
gatherNewsReports()
完成。然后
printDailyNewsDigest()
继续执行,打印新闻。
8. 当
printDailyNewsDigest()
函数主体完成执行时,它最初返回的将来完成,并且应用程序退出。


(请注意,该

exit
函数将导致立即终止,而无需等待。)


使应用程序的主要方法异步会带来意外的行为吗?(到目前为止)

否。首先,您应该记住,

async
关键字 不是
使函数异步的原因。该
async
关键字只是让使用的
await
关键字(这本身就是对登记语法糖
Future.then
回调)和(大部分)要求函数声明为返回
Future
。(我之所以说“主要”是因为允许返回
void
而不是返回
Future<void>
,尽管
dartanalyzer
如果启用了
avoid_void_async
lint也会抱怨这一点。)

一旦调用 任何 异步函数,您的应用程序将固有地是异步的。调用异步函数时,您可以:

  • 等待它完成(通过
    await
    Future.then
    )。然后,调用方也是异步的。
  • 无需等待异步操作(“一劳永逸”)。但这仍然意味着
    main
    可以返回的异步操作仍在等待中。

无论哪种方式,您的应用程序都必须在终止之前等待(假设它没有因未捕获的异常而异常终止

exit
)。

由于您

main
使用了函数
await
,您甚至没有选择标记的选择
async



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号