【发布时间】:2020-01-09 06:20:19
【问题描述】:
我正在编写代码来添加与我的 json 数据中每一行对应的数据。 所有功能和代码编写都已完成。当所有数据都被调用后,它应该返回 json。 但在执行所有代码之前,它会返回 json。 所以即使所有代码都运行良好,json 总是返回一个空值。 请指教。
var request = require('request');
var axios = require('axios');
router.get('/geometric/getAddress', async (req, res) => {
let confmKey = "secret";
let resultType = "json";
let countPerPage = "10"
let page = appjs.vCheck(req.query.page, "");
let kw = appjs.vCheck(req.query.keyword, "");
var stmt = "http://10.10.100.12:8080/addr.do?";
stmt = stmt + "currentPage=" + page;
stmt = stmt + "&countPerPage=" + countPerPage;
stmt = stmt + "&resultType=" + resultType;
stmt = stmt + "&confmKey=" + confmKey;
stmt = stmt + "&keyword=" + qs.escape(kw)
request(stmt, async (err, result) => {
if (err) throw err;
const con = JSON.parse(result.body);
const juso = con.results.juso;
var dd = ""
let res_data = juso.map(async (addr) => {
let admCd = appjs.vCheck(addr.admCd, "");
let rnMgtSn = appjs.vCheck(addr.rnMgtSn, "");
let udrtYn = appjs.vCheck(addr.udrtYn, "");
let buldMnnm = appjs.vCheck(addr.buldMnnm, "");
let buldSlno = appjs.vCheck(addr.buldSlno, "");
axios.post("http://localhost:3001/web/api/geometric/coordinates",
{
admCd : admCd,
rnMgtSn : rnMgtSn,
udrtYn : udrtYn,
buldMnnm : buldMnnm,
buldSlno : buldSlno
}).then((d) => {
return {
"roadAddr" : d.roadAddr,
"jibunAddr" : roadAddr,
"zipNo" : d.roadAddr,
"longitude" : roadAddr,
"latitude" : d.roadAddr
}
})
})
let aa = await Promise.all(res_data)
res.json(aa)
})
});
【问题讨论】:
-
你不会从
map回调中返回承诺。 -
你为什么要混合
axios和request来处理你的http 请求?一个返回一个承诺,另一个没有。
标签: javascript node.js promise es6-promise