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 相关文章推荐
使用正则替换变量
May 05 Javascript
jquery 常用操作方法
Jan 28 Javascript
JQuery中getJSON的使用方法
Dec 13 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 Javascript
JavaScript动态创建div属性和样式示例代码
Oct 09 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
Mar 01 Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 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 empty() 检查一个变量是否为空
2011/11/10 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php轻松实现文件上传功能
2016/03/03 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
javascript void(0)的妙用
2009/10/21 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
js有序数组的连接问题
2013/10/01 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
jQuery实现简单弹幕制作
2020/12/10 jQuery
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
python中使用print输出中文的方法
2018/07/16 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
django 模型中的计算字段实例
2020/05/19 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
银行批评与自我批评
2014/02/10 职场文书
国际贸易系求职信
2014/08/09 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
爱情保证书
2015/01/17 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python