async.waterfall 不会在最后呈现



我试图使用async.waterfall来清理我的代码。我有两个问题,这是我的代码。

async.forEachOf(req.files, (value, key, callback) => {
imagesController.create(req, res, idCreation, req.files[key].filename, imageData[key].ext)
})  
async.waterfall([
function(callback) {
exhibitionController.create(req,res, idCreation, req.body.exhibitionName, req.body.galery, req.body.exhibitionBegin, req.body.exhibitionEnds)
},
function(exhibition, callback) {
creationsController.findThisCreation(req, res, idCreation)
}],
function(err, creation) {
if(!err){
res.send(creation)
}
}) 

使用此代码,所有内容都设置在我的数据库中,数据被保存, 但是瀑布末端的res.send(datas(不起作用。相反,我的表单页面仍在加载。

另一个问题是代码的优化:我试图在瀑布函数中插入forEach,但随后保存了除图像以外的所有数据。

我还尝试在forEach函数的完成中渲染,实际上我做了所有这些事情来等待图像。但问题几乎是一样的,页面没有呈现。

我终于解决了它,但这不是小菜一碟...... 我必须承认我并不完全满意,我访问图像和展览结果只是因为我在创建它们时将它们推入选项卡中。 我希望这是瀑布许可证,等待瀑布自己制作,然后在瀑布的尽头获得创作,.... 这很奇怪,因为当我通过项目列表页面访问数据时,我的选项卡与里面的所有数据相连。而且是相同的获取器。 我必须更多地努力才能找到一个真正好的解决方案。

这是我的瀑布:

async.waterfall([
function(callback) {
callback(null, creationsController.create(req, res, true))
},
function(creation, callback) {
creation.then(function(crea){
idCreation = crea.get('id');
callback(null, exhibitionController.create(req,res, idCreation, req.body.exhibitionName, req.body.galery, req.body.exhibitionBegin, req.body.exhibitionEnds))
})
},
function(exhibition, callback){
exhibition.then(function(exhi){
exhibitions = exhi;
callback(null, async.forEachOf(req.files, (value, key, callback) => {
images.push(value);
callback(null,
imagesController
.create(req, res, idCreation, req.files[key].filename, imageData[key].ext));
})) 
})
},
function(images, callback) {
callback(null, creationsController.findThisCreation(req, res, idCreation))
}], function(err, creation) {
if(!err){
creation.then(function(result){
result.Images.push.apply(result.Images, images);
result.Exhibition.push.apply(result.Exhibition, exhibitions);
res.send(result);
})
}else{
res.send(err)
}
}) 

相关内容

  • 没有找到相关文章

最新更新