dart - 在 Dart 中返回 Future 时为空

标签 dart flutter

我有两个类(class),一个user_api_manager和一个 base_api_manager .来自 user_api_manager我调用get base_api_manager的方法|它执行 http get 请求并返回 Future<String> . get请求已执行,但我没有将结果传递给我的 user_api_manager类(class)。回调结果始终为空。

这是我的 user_api_manager.dart

static Future<Map<String,dynamic>> forgotPasswordAPI(String email) async{

String url = Constants.BASE_URL + Constants.FORGOT_PASSWORD_URL + email;

await BaseApiManager.get(url: url).then((val) {

  var response = JSON.decode(val);

  var status = response['status'];
  String message = '';
  print(response);
  switch (response['status']) {
    case Constants.SUCCESS:
      message = Constants.SUCCESS_RESPONSE;
      break;
    case Constants.SERVER_ERROR:
      message = Constants.SERVER_ERROR_MESSAGE;
      break;
    case Constants.UNAUTHORISED:
      message = Constants.UNAUTHORISED_MESSAGE;
      break;
  }
  return {'status':status,'message':message};
 });
}

这是我的 base_api_manager.dart

static Future<String> get({url : String,
parameters : Map ,
headers: Map }) async {
    var client = new http.Client();
    Map<String,dynamic> resultJSON;
    final c = new Completer();
    await client.get(url).then((response) {  //response is always null
    resultJSON  = {
        'status' : response.statusCode,
        'body' : JSON.decode(response.body)
    };
    c.complete(resultJSON.toString());
    return c.future;
  });
}

如何解决这个问题?

最佳答案

将 return c.future 移到响应处理之外,即你想从你的 get 中返回它,否则你将返回 null。

关于dart - 在 Dart 中返回 Future 时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49144973/

相关文章:

flutter - 当1更改时,如何防止Stream <List <T >>读取所有列表项?

flutter - 如何解决此NoSuchMethodError inFlutter问题?

api - 为 HTTPClient get() 请求设置超时

flutter - 使用 BLoC 在 init 上加载数据

ios - CocoaPods 找不到 pod "braintree_payment": in flutter 的兼容版本

flutter - 如何在模态底部工作表中制作 CheckboxListTile?

flutter - StatelessWidget 中的滚动 Controller

flutter - 连续使用FractionallySizedBox

flutter - Flutter升级后: The argument type 'Future<bool> Function(File)' can't be assigned to the parameter type 'FutureOr<dynamic> Function(Uint8List)'

react-native - Flutter apk/ipa 大小 vs React Native apk/ipa 大小