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

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

Promise的結(jié)果是一個數(shù)組,如何再去調(diào)用一個Promise,返回最終的組合的結(jié)果?

Promise的結(jié)果是一個數(shù)組,如何再去調(diào)用一個Promise,返回最終的組合的結(jié)果?

狐的傳說 2019-03-12 17:15:14
我在寫一個后臺,封裝了兩個方法去查詢數(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ī)兔匆幌?,謝謝。
查看完整描述

3 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗 獲得超4個贊

如果我沒看錯的話,你合并之后的函數(shù)應(yīng)該是在res.json(results)這里返回結(jié)果的,很顯然是不能正確返回的(results很可能是queryList的結(jié)果).因為你內(nèi)部queryVolume是一個耗時的操作,程序執(zhí)行到res.json(results) 塊時,此時results值并沒有被改變。


查看完整回答
反對 回復(fù) 2019-04-05
  • 3 回答
  • 0 關(guān)注
  • 663 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號