我想把数据保存到本地(只是一些数据(,我找到了几个包来做这件事(例如shared_preferences、secure_storage、sqflite(,但它们都需要使用await(Future(,如果我使用这些,我必须更改现有的代码以在Future中进行包装,但我只是觉得这很麻烦,所以我想知道为什么所有这些都需要使用wait来保存数据?或者我可以用另一种简单的方法吗?
谢谢!
需要明确的是:在flutter中不可能有同步系统调用。
这是由于一个体系结构决定:Flutter没有使用语言桥,而是使用两条总线(一条是dart,一条是native(相互发送消息。
这比使用桥接器更快,但会强制执行异步消息。
await
作为名称建议在不停止执行以下代码行的情况下等待某个事件,因为执行该工作需要几毫秒。因此,使用await
是一个好主意,因为函数中需要async
。
还有其他方法可以在不使用async-await
的情况下完成这项工作。这是then()
。
因此,无需将async
添加到函数中即可执行此操作。
performWork().then((result) {}));
如果不希望使用await
,可以在Future
对象上调用then()
。有关详细信息,请参阅此链接。
如果你正在与Flutter合作,你肯定必须处理Future的,没有任何工作可以围绕它。