Почему необходимо использовать ожидание для сохранения / получения локальных данных во Flutter? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу сохранить данные локально (всего несколько данных), и я нашел несколько пакетов для этого (например, shared_preferences, secure_storage, sqflite), но все они должны использовать await (Future), если я использую Я должен изменить свои существующие коды для переноса в Future, но я просто чувствую, что это очень хлопотно, поэтому мне интересно, почему все они должны использовать await для сохранения данных? или я могу использовать другой простой способ сделать это?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

await как следует из названия, ждать некоторого события, не останавливая выполнение следующих строк кода, потому что эта работа займет несколько миллисекунд. Таким образом, это хорошая идея использовать await, который должен иметь async в функции.

Есть другой способ выполнить эту работу без использования async-await. Это then().

Итак, вы идете с этим без необходимости добавлять async к вашей функции.

performWork().then((result) {}));
0 голосов
/ 12 ноября 2018

Если вы не хотите использовать await, вы можете вызвать then() для объекта Future. Обратитесь к этой ссылке для более подробной информации.

Если вы работаете с Flutter, вам определенно придется иметь дело с Future, вокруг этого нет работы.

0 голосов
/ 12 ноября 2018

Для ясности: невозможно вызвать синхронный системный вызов во флаттере.

Это связано с архитектурным решением: вместо использования языкового моста Flutter использует две шины (одна дротик, одна нативная), отправляющая сообщения друг другу.

Это быстрее, чем при использовании моста, но обеспечивает асинхронные сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...