【发布时间】:2022-01-19 07:54:16
【问题描述】:
大家好,我想在 try-catch 中执行一些代码。 如果try中的所有条件都满足,那么我想换屏。 但是因为条件有await,所以在条件检查之前画面就变了。
那么有没有办法解决这个问题? 反正有没有等别人结束再做Navigator.push?
我尝试了 Future.dowhile() 但没有工作..
try {
await savePhoneNum(_phoneNumberController.text);
await postAppToken(
tokenValue,
_packageInfo.appName,
_packageInfo.version,
Theme.of(context).platform.toString().substring(15),
_phoneNumberController.text);
final PhoneAuthCredential credential = PhoneAuthProvider.credential(
verificationId: _verificationId,
smsCode: _smsController.text,
);
Navigator.push(
context, MaterialPageRoute(builder: (context) => BottomBarScreen()));
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('${e.toString()}')),
);
}
【问题讨论】:
-
嗨,请检查
PhoneAuthProvider.credential是否是未来功能。如果是,则在其前面添加await。喜欢这个await PhoneAuthProvider.credential。 -
@AloysiusSamuel 我试过了,它给了我这个消息:'await' 应用于'PhoneAuthCredential',这不是'未来'
-
你可以进入
savePhoneNum和postAppToken函数里面看看是否可以在某些字段中添加await关键字。
标签: flutter dart async-await try-catch