我在寫一個后臺,封裝了兩個方法去查詢數據庫,它們的返回都是Promise,調用它們都有正確的結果。functionlist(req,res,next){letstart=req.query.start;letcount=req.query.count;exchangeDb.queryList(start,count).then(results=>{res.json(results)}).catch(err=>{throwerr;});}functionload(req,res,next,name){letlimit=req.query.limit;exchangeDb.queryVolume(name,limit).then(results=>{req.results=util.convert(results);returnnext();}).catch(err=>{throwerr;});}第一個返回的是列表,第二個是返回詳情。我想把它們合為一個方法,嘗試這樣做:functionlist(req,res,next){letstart=req.query.start;letcount=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=>{throwerr;});}顯然,它不能工作,我被這個問題深深的困擾了,如果是鏈式的Promise,then().then()看上去也不能解決這個問題,請大家?guī)兔匆幌?,謝謝。
Promise的結果是一個數組,如何再去調用一個Promise,返回最終的組合的結果?
慕桂英546537
2019-05-14 11:28:41