Dart Future HttpCLientRequest返回Null

时间:2018-11-09 20:43:15

标签: json http dart

类Requests建立了一个HttpClientRequest。方法getTeamsJsonForRequest应该返回JSON响应。但是,假设变量“ return”未正确分配。 .then响应中的打印'CONTS'成功打印了正确的响应,但是打印'myres'部分显示结果为空。不确定为什么没有在response.transform部分中分配结果。

class Requests {
    static Future getTeamsJsonForRequest(String reqPath) async{
        var result;
        HttpClient myhttp = new HttpClient();
        String path = '/api/v3' + reqPath;
        myhttp.get('www.thebluealliance.com', 80, path) 
        .then((HttpClientRequest request) {
            request.headers.set("accept", "application/json");
            request.headers.set("X-TBA-Auth-Key", "XXXXX");
            return request.close();
        })
        .then((HttpClientResponse response) {
             response.transform(utf8.decoder).transform(json.decoder).listen((conts) {
                print('CONTS: ' + conts.toString());
                result = json.decode(conts).toString();
            });
        });
        print('myres: ' + result.toString());
        return result;
        }
    }

1 个答案:

答案 0 :(得分:0)

简短的回答:避免在N <- 100 # Set sample size # Create filename fileName <- paste("binAll", N, "dne", sep=".") print(fileName) # Example write function write.table(yourData, file=fileName) 方法内使用Future.then

您的async正在执行,然后返回响应。 https://www.dartlang.org/tutorials/language/futures#async-await

在没有print的情况下,异步执行的任何工作都会在执行该函数中的后续语句后 发生。

这是我的写法:

await