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如何实现异步的.最 ...
随机推荐
- C# 解压缩工具类GZip
using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using ...
- python基础--numpy.dot
# *_*coding:utf-8 *_* # athor:auto import numpy dot = numpy.dot([0.100, 0.200],2.) print(dot) #[ 0.2 ...
- 使用SecureCRT做端口转发
我的笔记本只能访问跳板机,跳板机是Linux系统,访问内网机器需要在跳板机内通过ssh命令访问,特别不方便,而且我们还需要访问Windows或web网站. 这是我们就可以做一个端口转发,通过自己的笔记 ...
- Python爬取指定重量的快递价格
目录 一.获取查询接口 二.获取相关数据 三.编写爬虫脚本 四.查看查询效果 背景:现在这个时代,快递横飞.我们想寄一个快递,给出的选择也是多种多样的(根据快递的大小.送达的时间.寄送的距离及价格.公 ...
- C# 高级编程03----细节内容
一.名称空间 1.C#使用Using关键字可以列出所需类的名称控件. 它和C/C++ 中的#include不一样.using语句并没有在这些文件之间建立物理连接 2.使用using给名称空间指定别名 ...
- kvm虚拟机中鼠标不同步的问题解决方法
环境:Centos7.6安装kvm创建windows虚拟机,通过novnc连接到虚拟机上发现存在鼠标位置偏移问题 解决方法: 方法一: 经测试,windows系列虚拟机关闭鼠标加速亦可缓解该问题,不过 ...
- <!特别的一天>
<!DOCTYPE html> <html> <head> <meta charset="gb2312/"> <title&g ...
- 【玩转开源】Linux C 检测网口热插拔
int NetDetect(char *net_name, int *statue) { int ret = 0; ; struct ifreq ifr; skfd = socket(AF_INET, ...
- Centos设置防火墙与开放访问端口
一. jeuxs在启动后可能会出现启动jexus成功,但是访问失败.但是在服务器内部访问没问题. 列出所有端口 netstat -ntlp 查看已经开放的端口: firewall-cmd --list ...
- Android OS 源码 引入和编译 jar / so库
Android -- 源码平台下JAR包的引入与编译https://blog.csdn.net/csdn_of_coder/article/details/64538227 BUILD_JAVA_LI ...