我正在赶上学习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)
});
}
...
编辑:
当我将“返回结果”更改为“返回res.json(result)”时,承诺不会一直处于待处理状态,但是在我所说的承诺中,会出现一个错误,指出“响应”不是一个函数< / strong>
答案 0 :(得分:1)
您应libfoo.so.1
至libfoo.so.2
。
这是一个例子:
Makefile
更新:另一个问题,您甚至需要发送响应(包括错误/成功)。否则,请求将不会响应,客户端将永远挂起。
rethrow the error/throw a new error