为什么必须在Flutter中使用等待来保存/获取本地数据?

时间:2018-11-12 02:44:11

标签: flutter local-storage

我想将数据保存到本地(仅保存少量数据),并且为此找到了几个包(例如shared_preferences,secure_storage,sqflite),但是如果我使用的话,所有这些包都需要使用await(将来)这些,我必须更改现有代码以在Future中进行换行,但是我只是觉得很麻烦,所以我想知道为什么所有这些都需要使用await来保存数据吗?还是可以使用另一种简单的方法来做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:2)

要清楚:在flutter中不可能进行同步系统调用。

这是由于一项体系结构决策而引起的:Flutter使用了两条总线(一根飞镖,一个本地总线)相互发送消息,而不是使用语言桥。

这比使用网桥要快,但可以强制执行异步消息。

答案 1 :(得分:1)

await的名称建议等待一些事件而不会停止执行以下代码行,因为该工作需要花费几毫秒的时间才能执行。因此,使用await是个好主意,该函数需要在函数中包含async

还有另一种无需使用async-await即可完成此工作的方法。 那就是then()

因此,您不必在函数中添加async

performWork().then((result) {}));

答案 2 :(得分:1)

如果您不想使用await,则可以在then()对象上调用Future。有关更多详细信息,请参阅此link

如果您与Flutter合作,则肯定要处理Future的问题,而围绕它的工作却没有。