我正在使用flutter开发一个应用程序,我正在尝试为新用户实现注册过程 .

基本上,我实现了一个TextFormField,它为每个字段向服务器发送请求 .

我要求用户输入一个电话号码,然后向他们发送一个密码,他们必须用它来注册 .

为此,我想使用TextFormField验证方法并从那里发送http请求,因此我可以根据服务器的回复更新TextFormField错误消息 . 唉,dart提供的http API是异步的,我不太清楚如何正确实现它 .

我知道流和异步函数的颤振小部件,但它似乎用于动态小部件,而我想在用户单击按钮时触发调用 .

我还可以考虑解决方法,比如更新全局变量并使用异步函数中的“hackish”回调来测试函数何时完成 .

这是我现在正在使用的代码,我喜欢一些反馈或我应该去的方向:

validator: (value){
    if(value.length != 6){
      return 'This is not a proper otp';
    }
    http.post('$host/reg', body: '{ "id" : "${details['phone']}", "otp" : "$value" }', headers: { "Content-Type" : "application/json"}).then((reply){
        if(!json.decode(reply.body)['success']) {
            return 'Incorrect verification code';
        }}

现在,验证将无论如何都可以工作,并且我不能真正使用'await'来处理这个问题,因为函数必须是异步才能工作,验证器方法不允许 .