【发布时间】:2020-03-11 20:47:05
【问题描述】:
我正试图通过面临以下问题为其余客户端创建一个简单的包装器:
我有一个外部类:
typedef void Callback(int code, String body);
class HttpClient {
void post(String url, Map<String, String> headers, Map<String, String> params,
Callback callback) async {
final encoding = Encoding.getByName('utf-8');
Response response =
await post(url, headers: headers, body: params, encoding: encoding);
callback(200, "lol");
}
}
我的await post(...) 突出显示并显示以下错误:“此处的表达式的类型为 'void',因此无法使用。
有趣的是,如果我将方法更改为私有,突出显示就会消失。
我还可以将post 声明为私有函数,然后从另一个公共函数中调用它并传递所有相同的参数,这样就可以工作了。
我应该如何编写这个函数,然后在另一个地方调用它?谢谢!
编辑
感谢@Jack,我找到了解决方案:
进口应该是
import 'package:http/http.dart' as http;
并且 响应响应 = await post(url, headers: headers, body: params, encoding: encoding);
应该改为
var response =
await http.post(url, headers: headers, body: params, encoding: encoding);
【问题讨论】:
标签: flutter dart async-await