gpt4 book ai didi

facebook - 如何确保方法等待 http 响应而不是在 Dart 中返回 null?

转载 作者:行者123 更新时间:2023-11-30 05:27:10 26 4
gpt4 key购买 nike

我正在尝试在 Dart 中编写一个小的命令行库来使用 Facebook API。我有一个类“fbuser”,它获取身份验证 token 和用户 ID 作为属性,并有一个方法“groupIds”,它应该返回一个列表,其中包含来自用户的所有组 ID。

当我调用该方法时,它返回 null,尽管在 http 响应之后调用了两个可能的返回值。我做错了什么?

这是我的代码:

import 'dart:convert'; //used to convert json 
import 'package:http/http.dart' as http; //for the http requests

//config
final fbBaseUri = "https://graph.facebook.com/v2.1";
final fbAppID = "XXX";
final fbAppSecret = "XXY";

class fbuser {
int fbid;
String accessToken;

fbuser(this.fbid, this.accessToken); //constructor for the object

groupIds(){ //method to get a list of group IDs
var url = "$fbBaseUri/me/groups?access_token=$accessToken"; //URL for the API request
http.get(url).then((response) {
//once the response is here either process it or return an error
print ('response received');
if (response.statusCode == 200) {
var json = JSON.decode(response.body);
List groups=[];
for (int i = 0; i<json['data'].length; i++) {
groups.add(json['data'][i]['id']);
}
print(groups.length.toString()+ " Gruppen gefunden");
return groups; //return the list of IDs
} else {
print("Response status: ${response.statusCode}");
return (['error']); //return a list with an error element
}
});
}
}

void main() {
var usr = new fbuser(123, 'XYY'); //construct user
print(usr.groupIds()); //call method to get the IDs
}

此时输出为:

Observatory listening on http://127.0.0.1:56918
null
response received
174 Gruppen gefunden

该方法运行 http 请求,但立即返回 null。

(我今年夏天开始编程。感谢您的帮助。)

最佳答案

return http.get(url) // add return
void main() {
var usr = new fbuser(123, 'XYY'); //construct user
usr.groupIds().then((x) => print(x)); //call method to get the IDs
// or
usr.groupIds().then(print); //call method to get the IDs
}

关于facebook - 如何确保方法等待 http 响应而不是在 Dart 中返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948938/

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