`
weibin529
  • 浏览: 3644 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

async await 函数 等价的 generator 函数

阅读更多
  var getSyncTime = function () {
    return new Promise((resolve, reject) => {
      try {
        let startTime = new Date().getTime()
        setTimeout(() => {
          let endTime = new Date().getTime()
          let data = endTime - startTime
          resolve(data)
        }, 500)
      } catch (err) {
        reject(err)
      }
    })
  }

  var getSyncData = async function () {
    let time = await getSyncTime()
    let data = `endTime - startTime = ${time}`
    return data
  }

  var getData = async function () {
    let data = await getSyncData();
    console.log(data)
  }

  getData() 



  async await 函数  等价的 generator  函数
function run(generator) {
    var it = generator();
    function go(result) {
      if (result.done) {
        return result.value;
      }
      return result.value.then(function (value) {
        return go(it.next(value));
      }, function (error) {
        return go(it.throw(error));
      })
    }
    go(it.next());
  }



  var getSyncTime = function () {
    return new Promise((resolve, reject) => {
      try {
        let startTime = new Date().getTime()
        setTimeout(() => {
          let endTime = new Date().getTime()
          let data = endTime - startTime
          resolve(data)
        }, 500)
      } catch (err) {
        reject(err)
      }
    })
  }

  var getSyncData = function* () {
    let time = yield getSyncTime()
    let data = `endTime - startTime = ${time}`
    return data
  }


  run(function* () {
    let data = yield* getSyncData();
    console.log(data)
  })
分享到:
评论

相关推荐

    .Net异步编程(async await)初探

    针对.net异步编程(async await)使用入门的一些讲解

    async await 异常处理示例代码

    在.NET框架中,`async/await`关键字为开发者提供了优雅的异步编程方式。本文将深入探讨`async/await`模式下异常处理的四个典型场景,并通过具体的示例代码进行解析。 首先,我们要理解`async/await`的基本原理。`...

    Async/Await替代Promise的6个理由

    async/await 是写异步代码的新方式,以前的方法有回调函数和Promise。 async/await 是基于 Promise 实现的,它不能用于普通的回调函数。 async/await 与 Promise 一样,是非阻塞的。 async/await 使得异步代码看...

    async await 使用demo(WPF C#)

    Example for binding an ObservableCollection to a ListView and using async await Task to update the data

    async/await异步处理demo

    `async/await`是ES2017引入的一种更优雅、更易读的异步编程方式,它极大地改善了传统的回调函数和Promise链式调用的复杂性。下面我们将深入探讨`async/await`的原理、用法以及如何在实际项目中应用。 `async`关键字...

    vue3 使用async await

    `async`关键字用来定义一个异步函数,而`await`关键字则用于在异步函数内部等待Promise的结果。 ```javascript async function someAsyncFunction() { const result = await somePromise(); // 使用result } ``` ...

    前端开源库-babel-helper-remap-koa2-async-to-generator

    前端开源库-babel-helper-remap-koa2-async-to-generatorbabel-helper-remap-koa2-async-to-generator,将异步函数转换为ES2015生成器(koav2->koav1)。

    JS为什么说async/await是generator的语法糖详解

    一句话,它就是 Generator 函数的语法糖。 可是,为什么这么说呢? 首先,比如说有一个异步操作,使用 async/await 语法来以同步模拟异步操作。 使用 async/await 实现一个 sleep 的功能 function sleep(time) { ...

    使用Async和Await进行异步编程

    `async`和`await`关键字是C#语言为实现异步编程提供的核心工具,它们在Visual Studio 2015及更高版本中得到了广泛支持。 首先,我们来详细了解一下`async`关键字。`async`修饰符用于定义一个异步方法,这个方法会...

    js代码-async/await函数实现

    js代码-async/await函数实现

    详解Node.js中的Async和Await函数

    在本文中,你将学习如何使用Node.js中的...当函数声明为一个Async函数它会返回一个 AsyncFunction 对象,它们类似于 Generator 因为执可以被暂停。唯一的区别是它们返回的是 Promise 而不是 { value: any, done: Boolea

    使用async await 封装 axios的方法

    "使用async await 封装axios的方法" async await 是一种异步编程的方式,它可以将异步代码写得像同步代码一样,易于阅读和维护。axios 是一个流行的 HTTP 客户端库,用于发送 HTTP 请求。在 Vue 项目中,我们可以...

    async和await使用简单实例

    在C#编程中,`async`和`await`是用于异步编程的关键字,它们极大地简化了编写非阻塞代码的过程。异步编程是解决I/O密集型操作(如网络请求、读写文件等)时避免阻塞主线程的重要方法。下面我们将详细探讨这两个...

    c# Async Await的介绍

    ### C#中的Async和Await详解 #### 一、引言 在C#中,`async`和`await`是用于简化异步编程的关键字。它们的引入极大地改善了开发人员编写高效、响应式应用程序的方式。本文旨在深入探讨`async`和`await`的基本原理...

    C# async await使用方法

    在C#编程中,`async`和`await`是异步编程的关键关键字,它们使得开发者能够编写出非阻塞式的代码,从而提高了应用程序的性能和响应性。`async`和`await`通常与任务并行库(TPL)一起使用,为处理耗时的操作如I/O操作...

    如何更好的编写js async函数

    9. 随着JavaScript的发展,async/await的支持度日益提升,但早期开发者可能会使用generator和yield与co这样的库来模拟异步操作。随着async函数的广泛支持,这种模式逐渐被替代。 10. 在进行技术栈升级时,例如从...

    Python3.5中async_await特性的实现.pdf

    在Python中,协程的演化过程经历了从生成器(Generator)到增强型生成器(Enhanced Generators),最终发展到了async/await。 在Python 2.2版本中,PEP 255提出了简单生成器的概念,生成器提供了一种方便的迭代器...

    javascript之async-await简明教程

    打开本课程,你将会从编写简单的 `async/await` 函数开始,逐步学会如何结合 `promise` 和 `await` 关键字,如何定义不同类型的 `async` 函数,如何处理错误,如何让 `await` 代码串行或并行,如何在循环中正确使用 ...

Global site tag (gtag.js) - Google Analytics