我如何重组以下代码?

时间:2018-06-27 19:59:35

标签: javascript json node.js

我想用数据创建一个json结构,该结构将从api调用中获取。我可以使用以下代码生成该结构。但是我该如何重组代码以删除函数和循环的嵌套调用。

 var temp = {
    applications: []
};
    api.getApplications(conceptId)
        .then((applications) => {
            for (var i = 0; i < applications.length; i++) {
                (function(indexOfAppArr) {
                    let applicationId = applications[indexOfAppArr].id;
                    temp.applications.push({
                        id: applicationId,
                        databases: []
                    });
                    api.getDbs(conceptId, applicationId)
                        .then(databases => {
                            for (var j = 0; j < databases.length; j++) {
                                (function(indexOfDatabasArr) {
                                    let databaseid = databases[indexOfDatabasArr].id;
                                    temp.applications[indexOfAppArr].databases.push({
                                        id: databaseid,
                                        tabels: []
                                    });
                                    api.
                                    getSchema(conceptId,
                                        applicationId, databaseid).
                                    then(function(schemas) {
                                        for (var k = 0; k < schemas.length; k++) {
                                            (function(indexofschemaarr) {
                                                let schemaid = schemas[indexofschemaarr].id;
                                                api.getTable(conceptId, schemaid)
                                                    .then(function(tables) {
                                                        console.log(tables);
                                                    })
                                            })(k)
                                        }
                                    })
                                })(j)
                            }
                        })
                })(i)
            }
        })

这是我要创建的JSON结构。

    {
    applications:[{
        id:'',
        databases:[{
            id:'',
            tabels:[
                {
                    id:'',
                    columnId:''
                }
            ]   
        }]
    }]
};

1 个答案:

答案 0 :(得分:1)

如果您读了一点,就会真正地学习如何做。我个人还不需要学习它,但是听起来很有趣,这是我为您找到的一个很好的网站:

https://javascript.info/promise-chaining

它在那里解释了如何用更少的文字“重构”您要查询的代码:

loadScript("/article/promise-chaining/one.js").then(function(script1) {
  loadScript("/article/promise-chaining/two.js").then(function(script2) {
    loadScript("/article/promise-chaining/three.js").then(function(script3) {
      // this function has access to variables script1, script2 and script3
      one();
      two();
      three();
    });
  });
});

我敢肯定,阅读只需不到30公吨。祝你好运!