第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Promise的結果是一個數組,如何再去調用一個Promise,返回最終的組合的結果?

Promise的結果是一個數組,如何再去調用一個Promise,返回最終的組合的結果?

慕桂英546537 2019-05-14 11:28:41
我在寫一個后臺,封裝了兩個方法去查詢數據庫,它們的返回都是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ī)兔匆幌?,謝謝。
查看完整描述

2 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

如果我沒看錯的話,你合并之后的函數應該是在res.json(results)這里返回結果的,很顯然是不能正確返回的(results很可能是queryList的結果).因為你內部queryVolume是一個耗時的操作,程序執(zhí)行到res.json(results)塊時,此時results值并沒有被改變。
                            
查看完整回答
反對 回復 2019-05-14
  • 2 回答
  • 0 關注
  • 337 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號