我在类中有一个方法,但它没有返回值,是因为我将参数传递给该方法吗?



我正在尝试创建一个类和方法来使用Dio 进行HTTP请求


class appCommunicate {
appGetRequest(String url, {headers = ''})
async {
if (headers.length > 0) {
_res =  await dio.get(url, options: Options(headers: headers));
}
else
{
_res = await dio.get(url);
}

return _res;
}
}

然后,当我尝试调用这个类时,如下所示:

final communicate = appCommunicate();
final response = await communicate.appGetRequest(_myUrl);

什么都没发生,没有通信,应用程序就停在那里

dio.get((是一个例外。您必须在try-catch块中添加dio.get代码来处理异常。

appGetRequest(String url, {headers = ''}) async {
try {
return (headers.length > 0) ? await dio.get(url, options: Options(headers: headers)) : await dio.get(url);
}
catch (e) {
print(e);
}
}

我犯了一个错误,上面发布的类和方法很好,工作也很好。

我有另一段导致错误的代码。愚蠢的我!

由于它是一个async类型的函数,其返回类型应该是Future,如下所示-

class appCommunication{

Future<Response> appGetRequest(String url, {headers = ''})
async {
if (headers.length > 0) {
_res =  await dio.get(url, options: Options(headers: headers));
}
else
{
_res = await dio.get(url);
}

return _res;
}
}

相关内容