Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将期货与Dart结合使用_Dart - Fatal编程技术网

将期货与Dart结合使用

将期货与Dart结合使用,dart,Dart,为什么打印结果总是返回asd var jerl = "asd"; HttpRequest.request('Foo', method: "GET", requestHeaders: {"Authorization": "Secret"}).then((x) => x.responseText).then((y) => jerl = y); print(jerl); 异步代码只是被安排在以后执行,同步代码继续执行而不等待异步代码。你传递给未来的

为什么打印结果总是返回asd

      var jerl = "asd";

  HttpRequest.request('Foo',
    method: "GET",
    requestHeaders: {"Authorization": "Secret"}).then((x) => x.responseText).then((y) => jerl = y);

  print(jerl);

异步代码只是被安排在以后执行,同步代码继续执行而不等待异步代码。你传递给未来的方法。然后。。。在计划的异步代码完成时执行。在StackOverflow上,您会发现许多这样的问题和示例标记为[:dart async:]

如果您希望在异步代码完成时执行代码,则需要像处理其他代码一样将其链接起来

var jerl = "asd";

HttpRequest.request('Foo',
  method: "GET",
  /* return */ requestHeaders: {"Authorization": "Secret"})
  .then((response) {
    var jer1 = x.responseText;
    print(jerl);
  });
您可以使用async/await特性使代码看起来更像同步代码

Future someMethod() async { // <== added `Future` and `async`
  var jerl = "asd";

  var response = await HttpRequest.request('Foo',  // <== added `await`
    method: "GET",
    requestHeaders: {"Authorization": "Secret"}).then((x) => 
  print(response.text);
}
异步是有传染性的。无法从异步执行返回到同步执行。如果您的代码调用任何异步方法或函数,并且您需要代码进一步向下以等待异步结果,那么您还需要在调用方法中使用.then或使用async/await链接以下所有代码。为了让这一切顺利进行,你还需要把未来还给打电话的人,这样他就可以打电话了

使用async/await,您不需要显式返回future


async/await并不像上面提到的那样使异步代码同步,它只是使它看起来更像同步代码。基本行为与then相同。

异步代码只是计划稍后执行,同步代码继续执行而不等待异步代码。你传递给未来的方法。然后。。。在计划的异步代码完成时执行。在StackOverflow上,您会发现许多这样的问题和示例标记为[:dart async:]

如果您希望在异步代码完成时执行代码,则需要像处理其他代码一样将其链接起来

var jerl = "asd";

HttpRequest.request('Foo',
  method: "GET",
  /* return */ requestHeaders: {"Authorization": "Secret"})
  .then((response) {
    var jer1 = x.responseText;
    print(jerl);
  });
您可以使用async/await特性使代码看起来更像同步代码

Future someMethod() async { // <== added `Future` and `async`
  var jerl = "asd";

  var response = await HttpRequest.request('Foo',  // <== added `await`
    method: "GET",
    requestHeaders: {"Authorization": "Secret"}).then((x) => 
  print(response.text);
}
异步是有传染性的。无法从异步执行返回到同步执行。如果您的代码调用任何异步方法或函数,并且您需要代码进一步向下以等待异步结果,那么您还需要在调用方法中使用.then或使用async/await链接以下所有代码。为了让这一切顺利进行,你还需要把未来还给打电话的人,这样他就可以打电话了

使用async/await,您不需要显式返回future


async/await并不像上面提到的那样使异步代码同步,它只是使它看起来更像同步代码。基本行为与当时相同。

这看起来不像angularjs代码……必须是潜意识添加的这看起来不像angularjs代码……必须是潜意识添加的