上下文:Angular 5 app,NodeJS(带Nest)后端,MongoDB(Mongoose)
Handsontable.dom.addEvent(Replace, 'click', function() {
// Replace the value of every cell that have been match by the search query
for (row = 0, r_len = queryResult.length; row < r_len; row++) {
hot.setDataAtCell(queryResult[row].row, queryResult[row].col, replace);
}
// Reset all the fields
SearchField="";
ReplaceField="";
queryResult="";
document.getElementById('Search').value='';
document.getElementById('ReplaceWith').value='';
});
服务器的响应时,它看起来很好当我为变量分配这个相同的响应,然后console.log
变量,我得到console.log
而不是"lang":undefined
。
这让我大吃一惊。
"lang":"cn"
为变量分配this.http
.post(route, payload)
.subscribe(res => {
// logs '...."lang":"cn"....' (correct)
console.log(`res._body = `, res["_body"])
// logs { ... "lang":"cn" ... } (correct)
console.log(`JSON.parse = `, JSON.parse(res["_body"]))
// logs { ... "lang":"cn" ... } (correct)
console.log(`res.json = `, res.json())
let response = res.json()
// Logs { ... "lang": undefined ... } (WTF?)
console.log(`response = `, response)
})
后,为什么lang
未定义?
它与res.json()
完全相同。
这里有更多日志:(我删除了我认为是JSON数据中不相关的部分)
JSON.parse()