gpt4 book ai didi

flutter - 在dart中的列表上执行异步操作

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

我有一个问题,我必须将列表的某些元素(此处为types)映射到相同类型但具有异步操作的其他一些元素中。

Future<String> getData() async {
return await "hi";
}

void main() {
List<String> types = ["", "", ""];
List<String> otherTypes = types.map((e) async {
return await getData();
}).toList();
}
但是代码不会编译并出现以下错误。
Error compiling to JavaScript:
main.dart:9:6:
Error: A value of type 'List<Future<String>>' can't be assigned to a variable of type 'List<String>'.
- 'List' is from 'dart:core'.
- 'Future' is from 'dart:async'.
}).toList();
^
Error: Compilation failed.
PS:我已经在 dartpad.dev上尝试了上面的代码。

最佳答案

如果不使用另一个for循环,则不能将List 转换为Future ,或者您可以创建一个列表,并对每个循环使用常规形式。例子如下

Future<String> getData() async {
return await "hi";
}

void main() async{
List<String> types = ["", "", ""];
List<String> otherTypes = List();
for(var s in types)
otherTypes.add(await getData());
}
附言 future 值只能通过异步函数访问,否则您必须使用( future 值).then()回调。

关于flutter - 在dart中的列表上执行异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62702270/

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