如何在颤动中在另一个异步函数中调用一个异步函数

问题描述 投票:0回答:1

我有两个将来的功能,一个用于使用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));
                                    }
                                  };
                                 }

    }

它显示错误或未调用该函数。我现在该怎么办?预先感谢。

android ios google-chrome flutter flutter-layout
1个回答
0
投票

使用then回调

registrationService.verifyOtp(registrationData.mobileNumber,otpController.text).then((status) {

if(status == 'approved'){
   print('success');

registrationService.setPassword(registrationData.name, registrationData.number, passController.text).then((response) {

//....
})))

}


0
投票

为创建第二个异步函数

Future<PasswordStatus> getPasswordStatus() async {
await registrationService.setPassword(registrationData.name, registrationData.number, passController.text);
}

并且将该函数称为;

if(status == 'approved'){
   var passwordStatus = await getPasswordStatus();
}

然后只使用passwordStatus值。

© www.soinside.com 2019 - 2024. All rights reserved.