博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript异步之Generator、async、await
阅读量:6161 次
发布时间:2019-06-21

本文共 1148 字,大约阅读时间需要 3 分钟。

Generator

Generator允许我们在函数执行过程中暂停,并在将来某一个时刻回复执行。改变例以往函数必须执行完成才返回的特点。 整个 Generator 函数就是一个封装的异步任务,或者说是异步任务的容器。异步操作需要暂停的地方,都用 yield 语句注明

function* example(){    yield 1;    yield 2;    yield 3;}let iter=example();iter.next();//{value: 1, done: false},返回一个由yield表达式生成的值iter.next();//{value: 2, done: false}iter.next();//{value: 3, done: false}iter.next();//{value: undefined, done: true}//生成器结束let iter2=example();iter2.return(75);//给定返回值,并结束生成器{value: 75, done: true}itet2.next();//{value: undefined, done: true}//生成器结束let iter3=example();iter3.return();//{value: undefined, done: true}//生成器结束复制代码

Generator.prototype.throw()//抛出异常

async await(Generator的语法糖)

async function关键字用来在表达式中定义异步函数。

  • await 操作符用于等待一个Promise对象。只能在异步函数async function中使用。
  • await返回promise的操作对象的返回结果-如果promise正常处理,其回调函数resolve函数参数作为await表达式的值继续执行async function,如果执行错误,await 表达式会把Promise 的异常原因抛出,
  • 若果等待的不是promise对象,则返回该值本身
function resolveAfter2S(data){    return new Promise((res)=>{        setTimeout(()=>{            res(data)            },2000);    });}async function f1(){    let x=await resolveAfter2S(10);    let y=await 30;    console.log(y);//30    console.log(x);//10}f1()复制代码

转载地址:http://hwgfa.baihongyu.com/

你可能感兴趣的文章
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>