鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ 我想把getData(start)中的使用多個(gè) if 這里優(yōu)化一下,請(qǐng)問(wèn)如何處理

我想把getData(start)中的使用多個(gè) if 這里優(yōu)化一下,請(qǐng)問(wèn)如何處理?

async getData(start) {

        const _self = this;
        var response = [];
        if(start == 0){
            try {
                // let response = await fetch('mock-data/selectData01.json').then(function(response) {
                //     return response.json(); // 第1個(gè)
                // }).then(function(responseThenData) {
                //     //console.log('responseThenData =',responseThenData);
                //     return responseThenData // 第2個(gè)
                // }).catch(function(e) {
                //     console.log("Oops, error");
                // });
                response = await fetch('mock-data/selectData01.json').then(function(response) {
                    return response.json();
                })
                return response; // 第3個(gè)
            } catch(e) {
                console.log("Oops, error", e);
            }
        } else if (start == 1) {
            try {
                response = await fetch('mock-data/selectData02.json').then(function(response) {
                    return response.json();
                })
                return response; // 第3個(gè)
            } catch(e) {
                console.log("Oops, error", e);
            }
        } else if (start == 2) {
            try {

                response = await fetch('mock-data/selectData03.json').then(function(response) {
                    return response.json();
                })
                return response; // 第3個(gè)
            } catch(e) {
                console.log("Oops, error", e);
            }
        } else if (start == 3) {
            try {

                response = await fetch('mock-data/selectData04.json').then(function(response) {
                    return response.json();
                })
                return response; // 第3個(gè)
            } catch(e) {
                console.log("Oops, error", e);
            }
        } else if (start == 4) {
            try {

                response = await fetch('mock-data/selectData05.json').then(function(response) {
                    return response.json();
                })
                return response; // 第3個(gè)
            } catch(e) {
                console.log("Oops, error", e);
            }
        }
    }

    componentDidMount() {
        const _self = this;
        var key = true;


        let dataReadStart = 0;

        _self.getData(dataReadStart)
            .then(function(responseThenData) {
                //console.log('responseThenData =',responseThenData['dataChinaTelecom']['regionData']);
                _self.setState({
                    tableBody: responseThenData['dataChinaTelecom']['emergencyTableData'],
                    tableHead: responseThenData['dataChinaTelecom']['emergencyTableHeader']
                })
            })
            .then(function() {
                //console.log('abc')
            })
            .catch(function(e) {
                console.log("promise, error =", e);
            });


        // var key = true;
        // new Promise(function(resolve, reject){
        //     if(key){
        //         resolve('成功了')
        //     }else{
        //         reject('被拒絕')
        //     }
        // }).then(function(value) {
        //     console.log(value); // key=true 123
        // }, function (rej) {
        //     console.log('---------result reject');
        //     console.log(rej);
        // })

        dataReadStart = dataReadStart + 1;
        setInterval(function(){

            let dataPromise = _self.getData(dataReadStart);
            console.log('dataPromise =',dataPromise)
            dataPromise
                .then(function(responseThenData) {
                    //console.log('responseThenData =',responseThenData['dataChinaTelecom']['regionData']);
                    _self.setState({
                        tableBody: responseThenData['dataChinaTelecom']['emergencyTableData'],
                        tableHead: responseThenData['dataChinaTelecom']['emergencyTableHeader']
                    })
                })
                .then(function() {
                    //console.log('abc')
                })
                .catch(function(e) {
                    console.log("promise, error =", e);
                });
            if(dataReadStart + 1 == 5){
                dataReadStart = 0;
            } else {
                dataReadStart = dataReadStart +1;
            }

        },30000)

        // ECMAScript 定義了 Undefined、Null、Boolean、String、Number、Object 6種類型
        // 其中 Undefined 和 Null 都是只包含一個(gè)值得特殊類型,分別為 undefined 和 null
        // 因此根據(jù)定義undefined和null分屬不同類型
        // 使用===運(yùn)算符返回false
        // 當(dāng)聲明的變量未初始化時(shí),該變量的默認(rèn)值是undefined,而null則用于表示尚未存在的對(duì)象
    }

這里if能不能縮簡(jiǎn)到一個(gè)

回答
編輯回答
無(wú)標(biāo)題
async getData(start) {
    try {
        const response = await fetch(`mock-data/selectData${(start + 1 + '').padStart(2, '0')}.json`)
        return await response.json()
    } catch (e) {
        console.log("Oops, error", e)
    }
}
2017年12月25日 21:36
編輯回答
莓森
export default class a {
  async getData(start) {
    var response = [];
    const MAP = [
      { url: 'mock-data/selectData01.json' },
      { url: 'mock-data/selectData02.json' },
      { url: 'mock-data/selectData03.json' },
      { url: 'mock-data/selectData04.json' },
      { url: 'mock-data/selectData05.json' },
    ];
    try {
      response = await fetch(MAP[start].url).then(res => res.json());
      return response;
    } catch (e) {
      console.log('Oops, error', e);
    }
  }
}

拋磚引玉

2018年4月1日 12:56