【发布时间】:2021-05-14 06:26:07
【问题描述】:
我有一个获取请求,它工作正常。我的问题是,当我尝试记录特定响应时,我得到了未定义的结果,但是当我记录整个响应时,我得到了正确打印的字符串。如何从后端调用和记录特定的 var。我试过console.log(respone.line),但正如我所说,它记录了undefined。
//Backend
function getInfo() {
const line = "this is test"
return line
}
async function callGetInfo() {
const data1 = await getInfo()
return data1
}
module.exports = {
callGetInfo
};
//Frontend
function fetcher() {
fetch(`http://localhost:PORT/api/routePath`)
.then((res) => {
return new Promise((resolve, reject) => {
resolve(res.json())
})
}).then((response) => {
//displays the response
console.log(response)
//displays undefined
console.log(response.line)
}
}
fetcher()
【问题讨论】:
-
响应是一个字符串。它没有属性
line。 -
为此,您的服务器需要返回一个带有属性
line的对象(作为JSON)。您的示例返回一个简单的字符串(没有属性line) -
你为什么要返回一个新的 Promise?只是
return res.json(),这本身就是一个承诺。 -
那个“后端”代码什么都不做;它不监听任何端口;它不会向任何请求返回 JSON。它只是定义了几个函数,其中一个出于某种原因异步调用了一个同步函数。
-
这是作业面试还是编码挑战?我很确定我已经看到了具有相同问题的非常相似的代码,例如在
await getInfo()中不必要的await,一个字符串作为repsonse 而不是一个对象,相同的变量和函数名称。我很确定有一个已回答的重复项具有相同的问题和非常相似的代码(如果它没有被删除)。
标签: javascript