美文网首页
Dart 同步、异步、队列

Dart 同步、异步、队列

作者: youseewhat | 来源:发表于2019-04-23 07:23 被阅读0次

异步

Dart中的异步看起来像是同步

dart中使用 async方法和await 表达式实现异步

要使用await,其方法必须带有async关键字

可以使用try,catch, 和 finally 来处理使用 await的异常

async

方法使用async关键字,则该方法返回一个Future,并且 认为该函数是一个耗时的操作。

虽然异步方法的执行可能需要一定时间,但是 异步方法立刻返回 - 在方法体还没执行之前就返回了

await

在一个异步方法内可以使用多次await 表达式

await expression 中, expression的返回值通常是一个 Future; 如果返回的值不是 Future,则 Dart 会自动把该值放到 Future中返回。 Future对象代表返回一个对象的承诺(promise)。await expression 执行的结果为这个返回的对象。 await expression会阻塞住,直到需要的对象返回为止

如果await无法正常使用,请确保是在一个 async方法中。 例如要在 main()方法中使用 await, 则 main()方法的函数体必须标记为 async

main() async {
  print('In main: version is ${await lookUpVersion()}');
}

异步 for 循环具有如下的形式:

main() async {
  ...
  await for (var request in requestServer) {
    handleRequest(request);
  }
  ...
}

如果异步 for 循环不能正常工作, 确保是在一个 async方法中使用。 例如,要想在 main()方法中使用异步 for循环,则需要把 main()方法的函数体标记为 async

  • await-for
await for (int i in naturals) { print(‘event loop $i’); }

生成器

  • 同步生成器

  • 异步生成器

队列

相关文章

  • Dart 同步、异步、队列

    异步 Dart中的异步看起来像是同步 dart中使用 async方法和await 表达式实现异步 要使用await...

  • GCD基础总结一

    上代码~ 同步串行队列 同步并行队列 异步串行队列 异步并行队列 主队列同步 会卡住 主队列异步

  • GCD的几种创建方式及基本使用

    同步函数 同步函数+主队列 同步函数+串行队列 同步函数+并发队列 异步函数 异步函数+主队列 异步函数+串行队列...

  • GCD队列、同步异步

    GCD队列、同步异步 GCD队列、同步异步

  • 多线程GCD笔记

    同步函数 + 主队列 异步函数 + 主队列 同步函数 + 串行队列 异步函数 + 串行队列 同步函数 + 并发队列...

  • GCD详解

    一 使用步骤 创建队列(串行队列或并发队列) 调用函数(同步或异步) 二 重要概念 1,同步和异步 同步或异步最大...

  • GCD

    1、同步串行队列 2、同步并行队列 3、异步串行队列 4、异步并行队列 5、死锁 主线程中创建同步串行队列 主线程...

  • GCD 相关函数

    串行同步 串行异步 并行同步 并行异步 主队列同步 会死锁 主队列异步 异步处理耗时,回主线程刷新UI 栅栏函数 ...

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • 多线程的运用

    同步串行队列 同步并发队列 异步串行队列 异步并发队列 队列组 栅栏 队列组和栅栏的组合 信号量 死锁主线程 分析...

网友评论

      本文标题:Dart 同步、异步、队列

      本文链接:https://www.haomeiwen.com/subject/dzydgqtx.html