vue中ajax同步_Vue.js相关:js使用generator函数同步执行ajax任务

本文展示了如何在Vue.js中利用Generator函数实现AJAX请求的同步执行。通过创建`request`函数进行fetch操作,配合迭代器的next方法,确保了数据获取和模板渲染的顺序。代码示例中,`getData`和`getTpl`函数分别处理数据和模板的获取,最终在`getArticles`生成器函数中同步执行。
摘要由CSDN通过智能技术生成

Vue.js相关:js使用generator函数同步执行ajax任务

发布于 2020-2-23|

复制链接

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

```javascript

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) ..

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

```javascript

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()

// 异步任务模型

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值