js使用generator函数同步执行ajax任务


Posted in Javascript onSeptember 05, 2017

本文实例为大家分享了js使用generator函数同步执行ajax任务的具体代码,供大家参考,具体内容如下

function request(url, callback) {
  fetch(url, {mode: 'cors', credentials: 'include', headers: new Headers({ 'X-Requested-With': 'XMLHttpRequest' })})
  .then(response => response.text())
  .then(text => {
    console.log(url);
    console.log(text);
    callback(text);
  })
  .catch((e) => console.log(e));
}

var iterator = null;
function getData(src){
  request(src, function(response){
    iterator.next(JSON.parse(response));
  })
}

function getTpl(src){
  request(src, function(response){
    iterator.next(response);
  });
}

// 同步任务
function render(data, tpl){
  for(var i in data) {
    tpl = tpl.replace("${"+i+"}", data[i]);
  }
  return tpl;
}

// 主逻辑
var getArticles = function* (src){
  console.log('begin')
  var data = yield getData(src)
  var tpl = yield getTpl(data.tpl)
  var res = render(data, tpl)
  console.log(res)
}

iterator = getArticles('data.json')
// 开始执行
iterator.next()
// 异步任务模型

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
javascript+css3 实现动态按钮菜单特效
Feb 06 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
使用JavaScript破解web
Sep 28 Javascript
深入解读Node.js中的koa源码
Jun 17 Javascript
浅谈vue中resetFields()使用注意事项
Aug 12 Javascript
帮你提高开发效率的JavaScript20个技巧
Jun 18 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 #Javascript
详解Vue2.0 事件派发与接收
Sep 05 #Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 #Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 #jQuery
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 #Javascript
详解vue-cli本地环境API代理设置和解决跨域
Sep 05 #Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 #Javascript
You might like
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
js实现简单页面全屏
2019/09/17 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
Python使用python-docx读写word文档
2019/08/26 Python
Django之模板层的实现代码
2019/09/09 Python
flask 实现token机制的示例代码
2019/11/07 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
教堂婚礼主持词
2014/03/14 职场文书
作风整顿剖析材料
2014/09/30 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
情人节活动总结范文
2015/02/05 职场文书
电信营业员岗位职责
2015/04/14 职场文书
超市员工管理制度
2015/08/06 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL