我在寫一個后臺,封裝了兩個方法去查詢數(shù)據(jù)庫,它們的返回都是Promise,調(diào)用它們都有正確的結(jié)果。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; });}顯然,它不能工作,我被這個問題深深的困擾了,如果是鏈?zhǔn)降腜romise,then().then()看上去也不能解決這個問題,請大家?guī)兔匆幌?,謝謝。
Promise的結(jié)果是一個數(shù)組,如何再去調(diào)用一個Promise,返回最終的組合的結(jié)果?
狐的傳說
2019-03-12 17:15:14