#javascript #node.js #promise #axios
Вопрос:
Я хочу использовать api, чтобы узнать статус URL-адресов 3*2, и я написал этот исходный код, но он не сработал. Может быть, потому, что newList
эта функция так возвращает функции 2d-массива. И в этом коде функция newList работает дважды, как, я точно не знаю, почему.
Не могли бы вы, пожалуйста, рассказать мне, как упростить и заставить работать этот код нормально?
api axios
const axiosInstance = axios.create({ timeout:3000 }); let server = new Array(3) server[0] = 'http://serverUrl0:' server[1] = 'http://serverUrl1:' server[2] = 'http://serverUrl2:' let postfixA = '12345/?version=0' let postfixB = '12222/?version=1' let serverList = createArray(3,2) // make array[3,2] for (let i =0;ilt;server.length; i ){ for(let j=0; jlt;2 ; j ){ serverList[i][0] = {url : server[i] postfixA, result : 200} serverList[i][1] = {url : server[i] postfixB, result : 200} } } function newList(){ return serverList.map((valueArray, i )=gt;{ return valueArray.map((value, j)=gt;{ return axiosInstance.get( value.url ).catch(function (error){ console.log(`lnbServers server ${i 1} ${j==0 ? 'A':'B'} Error gt;gt;`, error.message) value.result = 500 }) }) }) } try { await axios.all(newList()) let data = {} for(let i=0; ilt;server.length; i ){ let keyStr = 'server_' i for(let j=0; jlt;2; j ){ keyStr = j%2==0 ? 'A' : 'B' data[keyStr] = serverList[i][j].result } } response.json(data) } catch (err) { console.log(err) response.sendStatus(500) }