首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何分离函数

如何分离函数
EN

Stack Overflow用户
提问于 2018-08-23 07:56:57
回答 1查看 92关注 0票数 0

我遇到了一个问题,因为我不知道如何分离函数。我有这样的代码,我只想在then()语句中调用函数,但我不知道如何将它们移出,因为它们有共同的变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.then(function(data){
  var rs = data.DL;
  var zones = [];
  var cluster = [];
  var loadStructure = [];

  function loadJsonData(rs, loadStructure) {
    //body method
    //creating zones[];
    //creating cluster[];
    return loadStructure;
  }

  function loadJsonInterZoneLinks(loadStructure, rs) {
    //body method
    //uses zones[]
    return loadStructure;
  }

  function loadJsonIntraZoneLinks(loadStructure, rs) {
    //body method
    //uses zones[] and cluster[]
    return loadStructure;
  }

  loadJsonData(loadStructure, rs);
  loadJsonInterZoneLinks(loadStructure, rs);
  return loadJsonIntraZoneLinks(loadStructure, rs);
})

每个函数都会将新值推送到loadStructure,最后一个函数会返回完整数组。我不知道如何将函数移出then(),因为有共同的变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 08:14:07

你可以像下面这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function loadJsonData(rs) {
    //body method
    //creating loadStructure[];
    //creating zones[];
    //creating cluster[];

    var loadStructure= [];
    var zones = [];
    var cluster = [];
    return new Promise(function(resolve, reject) {
        resolve([loadStructure, zones, cluster]);
    });
}

function loadJsonInterZoneLinks(rs, loadStructure, zones, cluster) {
    //body method
    //uses zones[]
    return new Promise(function(resolve, reject) {
        resolve([loadStructure, zones, cluster]);
    });
}

function loadJsonIntraZoneLinks(rs, loadStructure, zones, cluster) {
    //body method
    //uses zones[] and cluster[]
    return new Promise(function(resolve, reject) {
        resolve([loadStructure, zones, cluster]);
    });
}


yourfunction()
.then(function(data){
  var rs = data.DL;  
  return loadJsonData(rs);
})
.then(function(data) {
   return loadJsonInterZoneLinks(rs, data[0], data[1], data[2]);
})
.then(function(data) {
   return loadJsonIntraZoneLinks(rs, data[0], data[1], data[2]);
})
.then(function(data) {
  //HERE your final DATA return from here
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51980883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文