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 ...
- CodeForces 671C - Ultimate Weirdness of an Array
题意: 给以一个定义, F(l, r) 的值表示序列 A[1:n]的子序列 A[1....(l-1),(r+1)...n] 之中 任意两个数的最大公约数的最大值. 求 Sum=∑i=1N∑j=1N(F ...
- NOIP2018Day1T1 铺设道路
题目描述 春春是一名道路工程师,负责铺设一条长度为 \(n\) 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 \(n\) 块首尾相连的区域,一开始,第 \(i\) 块区域下陷的深度 ...
- String,下表和切片,分割
字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...
- log4j配置,输出sql到控制台
网上的 # Global logging configuration log4j.rootLogger=ERROR, stdout # log4j.logger后面跟着的是项目dao包路径,里面全部都 ...
- EntityFramework+EntityFramework.SqlServerCompact部署网站
1,最好通过Nuget添加引用EntityFramework.SqlServerCompact,省得去手动填写配置文件. 2,部署后遇到如下的问题: 原因是打包后的Bin下面缺少System.Data ...
- Angular 自定义拖拽指令
指令 组件是一种带模版的指令.指令是超级. 结构型指令(改变布局)和属性型指令(改变外观和行为). Renderer2和ElementRef Angular不提倡直接操作DOM 对于DOM的操作应该通 ...
- vue-router路由模式
什么是单页应用? 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web ...
- 2018-2019-2 20165220 《网络对抗技术》Exp1 PC平台逆向破解
实验目的 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...
- python copy模块
python copy模块 copy模块用于对象的拷贝操作 该模块只提供了两个主要的方法: copy.copy:浅复制 copy.deepcopy:深复制 直接赋值,深拷贝和浅拷贝的区别 直接赋值:简 ...