为什么要这样等待path_provider中的目录方法?他们没有通过互联网拨打网络。
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;
编辑:我认为我不够具体。我从方法签名中了解到它返回了未来。我更多地询问为什么这是未来,为什么这些方法是异步的。
是因为它们有点像Unix文件系统的写/读,即阻塞?
因为基础代码是异步的,并且返回Future
。要获取从a返回的值,Future
您必须使用await
或.then()
。
path_provider
用于MethodChannel
调用本机代码,并且该MethodChannel.invokeMethod()
函数是异步的。具体来说,本机代码(平台通道)的接口通过发送消息并等待响应来工作。它异步执行此操作,因此在等待本机端请求完成时不会锁定您的应用程序。
Flutter的特定于平台的API支持不依赖于代码生成,而是依赖于灵活的消息传递样式:
应用程序的Flutter部分通过平台通道将消息发送到其主机,应用程序的iOS或Android部分。
主机在平台通道上侦听,并接收消息。然后,它使用本机编程语言调用任何数量的特定于平台的API,并将响应发送回客户端,即应用程序的Flutter部分。
期货和异步代码不仅用于网络/互联网相关的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句