1

我正在学习 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 调用的函数中获取值?

4

1 回答 1

2

你正在尝试做一些 Dart 异步模型不支持的事情。您必须处理异步请求的结果:

  1. processString(),
  2. 在另一个调用 from 的函数中processString()
  3. 在传递给的匿名函数中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
}
于 2013-05-30T21:23:19.107 回答