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 相关文章推荐
写出更好的JavaScript程序之undefined篇(中)
Nov 23 Javascript
javascript处理table表格的代码
Dec 06 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
Jquery uploadify上传插件使用详解
Jan 13 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
Aug 08 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
Dec 30 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
JS通过位运算实现权限加解密
Aug 14 Javascript
详解Vue2 添加对scss的支持
Jan 02 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
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
PHP实现合并discuz用户
2015/08/05 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
python中threading超线程用法实例分析
2015/05/16 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
Python I/O与进程的详细讲解
2019/03/08 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
内业资料员岗位职责
2014/01/04 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
第一节英语课开场白
2015/06/01 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
新郎婚礼致辞
2015/07/27 职场文书
考试后的感想
2015/08/07 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server