【发布时间】:2020-06-01 13:29:48
【问题描述】:
我正在尝试获取异步函数的结果,我看到我需要放置“.then”,我看到我有结果,但是当我访问时我无法在函数的返回中显示它路径。但是在 console.log 我有结果。带有结果的 JSON 在承诺提供答案之前加载。
控制台日志
"Cartuchos e Toner > Cartucho Original > LexMark"
"Cartuchos e Toner > Cartucho Original > Epson"
"Games > Acessór. Playstation | PC"
我的回报示例:
"catName": "79",
"catNamePai": "76",
"nome": "LexMark",
"caminho": {
}
},
{
"catName": "80",
"catNamePai": "76",
"nome": "Epson",
"caminho": {
}
},
{
"catName": "81",
"catNamePai": "73",
"nome": "Acessór. Playstation | PC",
"caminho": {
}
我期望的回报示例:
"catName": "79",
"catNamePai": "76",
"nome": "LexMark",
"caminho": "Cartuchos e Toner > Cartucho Original > LexMark"
},
{
"catName": "80",
"catNamePai": "76",
"nome": "Epson",
"caminho": "Cartuchos e Toner > Cartucho Original > Epson"
},
{
"catName": "81",
"catNamePai": "73",
"nome": "Acessór. Playstation | PC",
"caminho": Games > Acessór. Playstation | PC"
我的代码
const trataDadosCatDigitoComCaminho = async (req, res) => {
const string = dados;
const separaLinha = string.split(/\n/)
const item = separaLinha.map(item => {
async function pegaCaminho(id){
const response = await api.get(`/tratadadoscatdigito/caminho/${id}`)
.then(function (response) {
// handle success
//console.log(response.data);
return response.data
})
.catch(function (error) {
// handle error
console.log(error);
});
return await response;
}
const catName = item.match(/^\d+/)[0].trim()
const catNamePai = item.match(/\t\d+/)[0].trim()
const nome = item.match(/\t[A-Za-záàâãéèêíïóôõöúçñÁÀÂÃÉÈÍÏÓÔÕÖÚÇÑ ].+/)[0].trim()
var caminho = pegaCaminho(catName).then(async res => {
console.log(res)
return await res;
})
const produto = { catName, catNamePai, nome, caminho}
return produto
});
return await res.json( item )
};
【问题讨论】:
标签: javascript node.js json