gpt4 book ai didi

dart - 在 Dart 中返回 Future 时为空

转载 作者:IT王子 更新时间:2023-10-29 06:51:59 26 4
gpt4 key购买 nike

我有两个类(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com