gpt4 book ai didi

Flutter 无法从另一个类调用异步函数

转载 作者:行者123 更新时间:2023-12-03 04:24:22 29 4
gpt4 key购买 nike

我试图通过面临以下问题为其余客户端创建一个简单的包装器:

我有一个外部类(class):

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',因此无法使用。

有趣的是,如果我将方法更改为私有(private),突出显示就会消失。

我也可以声明 post作为一个私有(private)函数,然后从另一个传递所有相同参数的公共(public)函数调用它,它就可以工作了。

我应该如何编写这个函数,然后在另一个地方调用它?谢谢!

编辑

感谢@Jack,我可以找到解决方案:

进口应该是
 import 'package:http/http.dart' as http;


响应响应 =
等待帖子(网址, header : header ,正文:参数,编码:编码);

应改为
 var response =
await http.post(url, headers: headers, body: params, encoding: encoding);

最佳答案

IDE 认为您正在引用您的 post方法而不是 http.post因为您的方法返回一个void。这可以通过替换来解决:await post(...)await http.post(...) .希望这有帮助!如果这不起作用,请在下面发表评论。

关于Flutter 无法从另一个类调用异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60644231/

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