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 相关文章推荐
jQuery 扩展对input的一些操作方法
Oct 30 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
JS实现控制表格单元格垂直对齐的方法
Mar 30 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 Javascript
原生JS实现左右箭头选择日期实例代码
Mar 14 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
webpack 开发和生产并行设置的方法
Nov 08 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
js面向对象方式实现拖拽效果
Mar 03 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过滤黑名单关键字的方法
2014/12/01 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
浅谈js中的闭包
2015/03/16 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
在Django的session中使用User对象的方法
2015/07/23 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
Django框架表单操作实例分析
2019/11/04 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
python序列类型种类详解
2020/02/26 Python
零基础学python应该从哪里入手
2020/08/11 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
J2EE相关知识面试题
2013/08/26 面试题
医院后勤自我鉴定
2013/10/13 职场文书
酒店总经理工作职责
2013/12/13 职场文书
清洁工表扬信
2014/01/08 职场文书
大学旷课检讨书
2014/01/28 职场文书
精彩的广告词
2014/03/19 职场文书
促销活动计划书
2014/05/02 职场文书
罚站检讨书
2015/01/29 职场文书
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript