displayService.getByMerchantId(req.query.merchantId).then((displays)=> {
displays.forEach(function (display) {
imageService.getByDisplayId(display.id).then((image)=> {
display.image = image;
});
});
res.send(displays);
}).catch((error)=> {
res.send(JSON.stringify({
result: -1,
reason: '查找失败'
}));
});
这样写没得用。。。then 回调函数的动作会在res.send(displays)后面执行。。- - 这样查到的数据是不正确。。。怎样 让then后面执行完了再执行res勒
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1)你为什么不能再getByMerchantId的时候把image也同时获取了呢。你现在这样做多麻烦呀
2)如果一定要这样做,那么参考以下代码
我看你都用到了
Promise了,那就用Promise的方法来处理这个问题好了,可以使用Promise.map()方法推荐使用
bluebird这个Promise库如果你本来用的就是
bluebird,你还可以像下面这样:如果你用的mySQL,直接关联查询
如果用的mongodb,在Merchant的model添加一个属性image,就像这样
查询的时候,会直接查出Image的内容,不需要先查出所有的Merchant,在遍历去查询Image
这就是我为什么喜欢koa而不喜欢express的原因,yield多好用~一点都不反人类。