【发布时间】:2020-03-12 06:04:00
【问题描述】:
我正在赶上学习 React。如果您对此代码有任何提示,请分享,这对我很重要:)。
为什么这个承诺不起作用?
在控制台中显示待处理状态。
承诺:
_server.get(`/select`, (req, res) => {
return DefaultSQL.select(table).then((result) => {
return result
}).catch((err) => {
console.log(err)
});
})
我称之为承诺的地方:
export const getData = (url) => {
const response = Server.get(url) status
return response.then((result) => { // <- Not firing
return result
}).catch((err) => { // <- Not firing too
console.log(err);
})
}
承诺的名称:
class DefaultSQL {
select(table) {
const sql = `SELECT * FROM ${table}`;
return Db.conn.query(sql).then((result) =>
result
).catch((err) => {
console.log(err)
});
}
...
编辑:
当我将“return result”更改为“return res.json(result)”时,promise 不会保持挂起状态,但是在我调用 promise 的地方会出现错误,说“response”不是函数
【问题讨论】:
-
您似乎将服务器端代码与客户端代码混为一谈。服务器上的路由处理函数必须写一个响应,而不是返回一个承诺。
-
请向我们展示您对
Server.get的实现。这一定是关于response不是函数的客户端错误的来源。
标签: javascript reactjs ecmascript-6 promise nodes