ES 6 proimse &&iterator &&Generator函数 &&async
1.proimse 异步调用
function getData(){
let promise =new Promise((resolve,reject));
let xmlHttp =new XMLHttpRequest();
xmlHttp.onreadystatechange =function(){
if(xmlHttp.readyState===4){
if(xmlHttp.status==200){
resolve(xmlHttp.response)
}else{
reject('数据没有内容')
}
}
};
xmlHttp.open(tyoe="GET",url,true)
xmlHttp.send() } getData(GET,url).then((data)=> {
console,log(data.url1)
let url1 =data.url1
return getData(GET,url1);//返出promise对象(多次调用)
},(error)=>{
console,log(error)
})
.then(()=>{
//链式调用,
}).catch(()=>{ }) getData(POST,url).then((data)=> {
console,log(data)
},(error)=>{
console,log(error)
})
2.iterator 接口与 Generator 函数
Iterator 接口与 Generator 函数
Symbol.iterator方法的最简单实现,还是使用下一章要介绍的 Generator 函数。
let myIterable = {
[Symbol.iterator]: function* () {
yield 1;
yield 2;
yield 3;
}
}
[...myIterable] // [1, 2, 3]
// 或者采用下面的简洁写法
let obj = {
* [Symbol.iterator]() {
yield 'hello';
yield 'world';
}
};
for (let x of obj) {
console.log(x);
}
// "hello"
// "world"
3.Generator 异步调用
<script src='../jquery.min.js'></script>
<script >
function getData(url){
$.get(url,function(data){
console.log(data)
let url ='http://127.0.0.1:3000' +data.urlId
SX.next('');//新闻详情的请求
})
}
function* sendxml(){
//新闻列表的请求
let url = yield getData('http://127.0.0.1:3000/newslist')
//新闻详情的请求
yield getData(url)
}
let SX =sendxml();
SX.next(); //新闻列表的请求 </script>
7.async
async function getData(url){
return new Promise((resolve,reject))
$.ajax({
method:'GET',
url,
success:data =>{
resolve(data)
},
error:(error) =>reject()
})
}
async function SendXM(){
let result = await getData('http://127.0.0.1:3000/newslist')
await getData('http://127.0.0.1:3000' + result.urlId)
}
SendXM()
ES 6 proimse &&iterator &&Generator函数 &&async的更多相关文章
- ES Next & Arrow function & Promise & Iterator & Generator yield & Async Await
ES Next & Arrow function & Promise & Iterator & Generator yield & Async Await co ...
- JavaScript中的Generator函数
1. 简介 Generator函数时ES6提供的一种异步编程解决方案.Generator语法行为和普通函数完全不同,我们可以把Generator理解为一个包含了多个内部状态的状态机. 执行Genera ...
- generator函数与async/await
理解async函数就要先理解generator函数,因为async就是Generator函数的语法糖 Generator 函数 Generator 函数是 ES6 提供的一种异步编程解决方案,可以先理 ...
- async函数对比Generator函数
首先定义一个读取文件的异步函数 var readFile = function(fileName){ return new Promise((resolve,reject)=>{ fs.read ...
- ES6的generator函数
generator是什么? generator是ES6提供的一种异步编程解决方案,在语法上,可以把它理解为一个状态机,内部封装了多种状态.执行generator,会生成返回一个遍历器对象.返回的遍历器 ...
- Generator函数语法解析
转载请注明出处: Generator函数语法解析 Generator函数是ES6提供的一种异步编程解决方案,语法与传统函数完全不同.以下会介绍一下Generator函数. 写下这篇文章的目的其实很简单 ...
- JavaScript异步编程:Generator与Async
从Promise开始,JavaScript就在引入新功能,来帮助更简单的方法来处理异步编程,帮助我们远离回调地狱. Promise是下边要讲的Generator/yield与async/await的基 ...
- Generator和Async
引言 接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术. 在异步编程中,还有一种常用的解决方案,它就 ...
- JS异步编程 (2) - Promise、Generator、async/await
JS异步编程 (2) - Promise.Generator.async/await 上篇文章我们讲了下JS异步编程的相关知识,比如什么是异步,为什么要使用异步编程以及在浏览器中JS如何实现异步的.最 ...
随机推荐
- SQL Server 数据库备份和还原
一.SQL命令 备份BACKUP DATABASE TestDb TO DISK='d:\TestDb.bak'还原RESTORE DATABASE TestDb FROM DISK='d:\Test ...
- Win 10 系统下研华采集卡Advantech Navi SDK虚拟demo设备安装方法
研华的DAQNavi是其采集卡设备的.net编程SDK,安装了其通讯工具Navigator后,可以添加虚拟采集卡 demo device. 在Win10上,执行添加操作时,可能会出现添加失败,这是由于 ...
- Ubantu更新hostname & hosts
一.概述 Hostname 即主机名,一般存放在 /etc/hostname 中.而hosts则是本地域名解析文件,存放于 /etc/hosts. 二.测试 2.1 hostname musion@m ...
- JSP项目前端优化
问题:在谷歌浏览器中兼容问题,在点击超链接第一次会跳到头部,第二次点击才能打开的问题. 解决方案:是href的问题,删除href的属性,使用click事件,并添加a的超链接样式. #othera{ c ...
- Linux安装JSON-C
0.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. JSON采用完全独立于语言的文本格式,但是 ...
- Aspnet Core 对 Resetful API版本的支持
在实际项目过程中API往往会收到迭代的影响,同时具备多个版本,因此resetful接口的版本话是非常重要的. 其实官方就提供了很好的支持,微软爸爸在nuget提供了Microsoft.AspNetCo ...
- sql查询一个字段多列值合并为一列
SELECT GROUP_CONCAT(A.字段) AS 字段别名 FROM 表名 A WHERE A.字段=,,) SELECT GROUP_CONCAT(A.字段) AS 字段FROM 表名 A
- ElasticSearch本人启动报错总结
1.报错关键代码如下: Exception in thread "main" 2019-04-28 03:53:04,339 main ERROR No log4j2 config ...
- 远程服务器数据交互技术:rsync,scp,mysqldump
远程服务器间数据文件交互,可用技术:rsync,scp 速度:rsync是非加密传输,比scp快 安全:scp为加密传输 备份体量:rsync只更新差异部分,可以做增量和全量备份.scp为全量 传输方 ...
- VS2013+ffmpeg开发环境搭建
VS2013+ffmpeg开发环境搭建 转 https://blog.csdn.net/u014253332/article/details/86657868 一.准备ffmpeg相对应开发dll.i ...