我有两个未来的函数,一个用于使用 API 验证 OTP,另一个用于使用 API 设置密码。
OTP 验证成功后,必须调用设置的密码 API。我该怎么做?
我的代码是:
() async {
var status = await registrationService.verifyOtp(registrationData.mobileNumber,otpController.text);
if(status == 'approved'){
print('success');
() async {
var passwordStatus = await registrationService.setPassword(registrationData.name, registrationData.number, passController.text);
if(passwordStatus == 'approved'){
print('approved');
Navigator.pushNamed(context, StudMainPage.id);
}
else{
WidgetsBinding.instance.addPostFrameCallback((timeStamp) => _showNewVersionAvailableDialog(context));
}
};
}
}
它显示错误或未调用函数。我现在应该怎么做? 提前谢谢。
使用then
回调
registrationService.verifyOtp(registrationData.mobileNumber,otpController.text).then((status) {
if(status == 'approved'){
print('success');
registrationService.setPassword(registrationData.name, registrationData.number, passController.text).then((response) {
//....
})))
}
创建第二个异步函数
Future<PasswordStatus> getPasswordStatus() async {
await registrationService.setPassword(registrationData.name, registrationData.number, passController.text);
}
并将该函数调用为;
if(status == 'approved'){
var passwordStatus = await getPasswordStatus();
}
然后只需使用密码状态值。