承诺保持未决状态,并且“ then”或“ catch”没有触发。 ReactJS

时间:2019-11-16 05:46:49

标签: javascript reactjs ecmascript-6 promise nodes

我正在赶上学习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>

1 个答案:

答案 0 :(得分:1)

您应libfoo.so.1libfoo.so.2

这是一个例子:

Makefile

更新:另一个问题,您甚至需要发送响应(包括错误/成功)。否则,请求将不会响应,客户端将永远挂起。

rethrow the error/throw a new error