gpt4 book ai didi

list - Future 异步函数的返回值有问题

转载 作者:IT王子 更新时间:2023-10-29 07:19:40 26 4
gpt4 key购买 nike

我创建了一个从 api 获取 json 的函数。问题是函数没有返回值。它返回“ future 实例...”

我尝试了不同的解决方法。如果我打印应该返回的值 (print(extractdata[1])) 它实际上返回了它应该返回的值:

{
id: 2
name: Sala 2,
beds: [
{
id: 3,
name: Cama 3,
paciente: null
},
{
id: 4,
name: Cama 4,
paciente: null
}
]
}

Future <List> getRoom() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
var _token = prefs.getString('token');
final response = await http.get('http://10.0.2.2:8000/api/room/',
headers: {'Authorization':'JWT $_token'}
).then((res){
var extractdata = JSON.jsonDecode(res.body);
return extractdata;
});
}

我希望输出是所有房间的列表,但它返回的是“Instance of Future...”。如果我尝试获取长度,如果我在函数内部打印它,它会起作用,但如果我调用该函数,然后询问长度,它就不起作用。

最佳答案

因为您正在使用 async/await,所以您不需要使用 then

Future <List> getRoom() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
var _token = prefs.getString('token');

final response = await http.get('http://10.0.2.2:8000/api/room/',
headers: {'Authorization':'JWT $_token'}
);

var extractdata = JSON.jsonDecode(response.body);
return extractdata;
}

关于list - Future 异步函数的返回值有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245498/

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