GOOGLE ADS

среда, 27 апреля 2022 г.

Пакет Flutter share_plus: неожиданное поведение асинхронного ожидания

Это плагин Flutter для обмена контентом из вашего приложения Flutter через диалоговое окно общего доступа платформы. Ссылка: https://pub.dev/packages/share_plus/install

Я использую следующие команды, чтобы поделиться изображением только с подписью или текстовым сообщением.

await Share.shareFiles([imagePath],текст: текст); //поделиться изображением + текстом

или

ожидайте Share.share (текст,); //поделиться только текстом

Здесь.share — это функция будущего, и я хотел бы подождать, пока это не будет сделано. Кажется, этого не происходит. Вы можете быстро проверить это, добавив команду печати после одной из приведенных выше команд, как показано ниже.

ожидайте Share.share (текст,); print('это должно быть напечатано после процесса обмена');

Вы заметите, что текст печатается в консоли до завершения совместного использования (диалоговое окно общего доступа платформы все еще активно).

Я что-то упускаю? Или вы считаете, что проблема в пакете?

Спасибо заранее


Решение проблемы

Это ожидаемое поведение. Функции Futures и async-await не могут предоставить результат сразу после запуска. Вы можете прочитать документацию или просмотреть это руководство, чтобы узнать, как использовать фьючерсы. В вашем случае, возможно, вам следует попробовать:

await Share.share(text,).then((result){
print('this should be printed after the sharing process ${result}');
}
)

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...