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 toggle使用分析
Nov 16 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
Feb 25 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
关于JS中prototype的理解
Sep 07 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
Jquery 垂直多级手风琴菜单附源码下载
Nov 17 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
vue元素实现动画过渡效果
Jul 01 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
vue实现移动端拖动排序
Aug 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中单引号与双引号的区别分析
2014/08/19 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
p5.js临摹动态图形的方法
2019/10/23 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
全球性的女装店:storets
2019/06/12 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
小学老师对学生的评语
2014/12/29 职场文书
感恩老师主题班会
2015/08/12 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Python+DeOldify实现老照片上色功能
2022/06/21 Python