我想声明一个接收异步函数结果的变量。
var eff_histo= await _eff_histo(selectedline);
await表达式只能在异步函数中使用
答案 0 :(得分:0)
您仍然误解async
。 async
关键字不是的意思是“在另一个线程上运行”。
要将某些代码推送到另一个线程上,您需要显式地执行它,例如Task.Run
:
await Task.Run(() => Logger.LogInfo("Pushing new call {0} with {1} id".Fill(callNotificationInfo.CallerId));
我有一个async
/await
intro post,您可能会有所帮助。
答案 1 :(得分:0)
我认为这更像是 哲学 ,同步方法不应该等待,因为其他重要任务可能会受到影响,花费时间的异步任务可能会花费一些时间,因此在那里等待是有道理的。查看此以获得更多信息https://github.com/dart-lang/sdk/issues/22269#issuecomment-108458526
答案 2 :(得分:-1)
您不能在异步函数外部使用await,请尝试构建变量区域设置并在initState内声明变量
var eff_histo;
@override
void initState() async {
super.initState()
eff_histo= await _eff_histo(selectedline);
}