我有两个将来的功能,一个用于使用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();
}
然后只使用passwordStatus值。