警告:在处理程序中创建了一个promise - bluebird

时间:2017-04-28 06:23:42

标签: node.js promise

我遇到警告错误,请指导我解决。

  

警告:在匿名处理程序的处理程序中创建了一个承诺> (/opt/testproj/node_modules/pipeworks/pipeworks.js:72:17但未从中返回,请参阅http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it   在新的承诺(/opt/testproj/node_modules/bluebird/js/release/promise.js:77:14)

示例代码

const bluebird = require('bluebird');
const options = {
                  promiseLib: bluebird
                };
const pgpromise = require('pg-promise')(options);
const connectionString = `postgres://${user}:${password}@${host}:${port}/${database}`; 
const db = pgpromise(connectionString);


db.func('student__find_by_id', [id])                                       
.then((data) => {                                                                                                                   
  return res.json(data);
}).catch((err) => {
   log.error(err);                                                                                                              
});

1 个答案:

答案 0 :(得分:2)

根据我之前的评论,此处显示的代码无法抛出您描述的错误。在pg-promise测试中全面涵盖了类似这样的情况。

您应该使用Bluebird's Long Stack Tracing功能正确识别导致此错误的代码:

var Promise = require('bluebird');

Promise.config({
    longStackTraces: true
});