我想将数据保存到本地(仅保存少量数据),并且为此找到了几个包(例如shared_preferences,secure_storage,sqflite),但是如果我使用的话,所有这些包都需要使用await(将来)这些,我必须更改现有代码以在Future中进行换行,但是我只是觉得很麻烦,所以我想知道为什么所有这些都需要使用await来保存数据吗?还是可以使用另一种简单的方法来做到这一点?
谢谢!
答案 0 :(得分:2)
要清楚:在flutter中不可能进行同步系统调用。
这是由于一项体系结构决策而引起的:Flutter使用了两条总线(一根飞镖,一个本地总线)相互发送消息,而不是使用语言桥。
这比使用网桥要快,但可以强制执行异步消息。
答案 1 :(得分:1)
await
的名称建议等待一些事件而不会停止执行以下代码行,因为该工作需要花费几毫秒的时间才能执行。因此,使用await
是个好主意,该函数需要在函数中包含async
。
还有另一种无需使用async-await
即可完成此工作的方法。
那就是then()
。
因此,您不必在函数中添加async
。
performWork().then((result) {}));
答案 2 :(得分:1)
如果您不想使用await
,则可以在then()
对象上调用Future
。有关更多详细信息,请参阅此link。
如果您与Flutter合作,则肯定要处理Future的问题,而围绕它的工作却没有。