zoukankan      html  css  js  c++  java
  • 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()
    // 异步任务模型
  • 相关阅读:
    uap
    打印机驱动下载
    hsf
    系统安装
    npm
    webuploader传递参数
    thinkphp5集成H-ui后台(五)集成webUploader
    webUploader上传视频,包括上传进度、上传状态、暂停和取消等
    webuploader php上传视频
    使用Webuploader大文件分片传输
  • 原文地址:https://www.cnblogs.com/zj911005/p/9372730.html
Copyright © 2011-2022 走看看