亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Express渲染首頁,需調用多個API,如何保證數據都拿到后再渲染

Express渲染首頁,需調用多個API,如何保證數據都拿到后再渲染

慕虎7371278 2018-08-08 10:09:39
渲染首頁需要調用4個接口,4個接口之間沒有數據依賴關系,需要所有數據都拿到以后再執行render,我大概是這樣寫的,總感覺不太好。使用了request-promise模塊var data = {};var i = 0;      event.on('change', function(){    if(i == 2){      console.log("渲染頁面了");       res.render('index', data);     }   });   request('/api/good/banner')     .then(function(htmlString){       data.banner = JSON.parse(htmlString);       i++;      console.log(i);       event.emit('change');     });   request('/1/good/recommend')     .then(function(htmlString){       data.list = JSON.parse(htmlString);       i++;      console.log(i);       event.emit('change');     });
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

確實不好看,這么寫吧,用Promise.all做處理:

var api1 = request('/api/good/banner');

var api2 = request('/1/good/recommend');


Promise

.all([api1, api2])

.then(function(results) {

    var data.banner = JSON.parse(results[0]);

    var data.list = JSON.parse(results[1]);

});


查看完整回答
反對 回復 2018-09-16
  • 1 回答
  • 0 關注
  • 738 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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