为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 672 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信