我正在学习Dart而且我遇到了障碍。我非常想从json字符串处理函数返回一个值,所以我可以在main()中使用该值。 (我正在尝试设置一些顶级变量以与单向数据绑定一起使用html模板。)我正在使用HttpRequest.getString
和.then
调用来启动处理。但是HttpRequest不喜欢被分配给变量,所以我不确定如何从中获取任何东西。
processString(String jsonString) {
// Create a map of relevant data
return myMap;
}
void main() {
HttpRequest.getString(url).then(processString);
// Do something with the processed result!
}
我想我的问题是如何从HttpRequest调用的函数中获取值?
答案 0 :(得分:2)
您正在尝试执行Dart异步模型不支持的操作。您必须处理异步请求的结果:
processString()
,processString()
,then()
的匿名函数中。 或类似的东西。您无法所做的是从main()
进一步向下访问
processString(String jsonString) {
// Create a map of relevant data
// Do something with the processed result!
}
void main() {
HttpRequest.getString(url).then(processString);
// Any code here can never access the result of the HttpRequest
}
您可能更喜欢:
processString(String jsonString) {
// Create a map of relevant data
return myMap;
}
void main() {
HttpRequest.getString(url).then((resp) {
map = processString(resp);
// Do something with the processed result!
});
// Any code here can never access the result of the HttpRequest
}