flutter在initState中同步执行异步代码
flutter在initState中同步执行异步代码
·
需求:想在Widget初始化过程中同步执行异步代码
由于void initState()
函数只能是同步的,不能改写为异步的,所以没法在initState
中await f()
;但是我们可以将异步代码写成一个异步函数,不用await直接在initState中执行,此时会存在initState执行完进入下一个生命周期钩子函数;但是我们的异步函数任然可能在继续执行,那么此时就需要在异步函数中使用setState()来刷新页面,达到仿佛是同步执行的效果,实际还是异步执行。
void _initRstpUrl() async {
this.rtspUrl = await MyPrefs.getStorage(PrefsEnumName.rtspUrl);
}
void initState() {
super.initState();
_initRstpUrl();
}
更多推荐
已为社区贡献2条内容
所有评论(0)