我在写一个后台,封装了两个方法去查询数据库,它们的返回都是Promise,调用它们都有正确的结果。function list(req, res, next) { let start = req.query.start; let count = req.query.count; exchangeDb.queryList(start, count).then(results => { res.json(results) }).catch(err => { throw err; });}function load(req, res, next, name) { let limit = req.query.limit; exchangeDb.queryVolume(name, limit).then(results => { req.results = util.convert(results); return next(); }).catch(err => { throw err; });}第一个返回的是列表,第二个是返回详情。我想把它们合为一个方法,尝试这样做:function list(req, res, next) { let start = req.query.start; let count = req.query.count; exchangeDb.queryList(start, count).then(results => { results.forEach((index,element) => { exchangeDb.queryVolume(element.name,50).then(volume => { element.volume = volume; results[index] = element; }) }); res.json(results) }).catch(err => { throw err; });}显然,它不能工作,我被这个问题深深的困扰了,如果是链式的Promise,then().then()看上去也不能解决这个问题,请大家帮忙看一下,谢谢。
添加回答
举报
0/150
提交
取消
