如何解决将对象推送到forEach内部数组的范围问题?

时间:2018-06-09 18:05:11

标签: javascript arrays node.js express

我有一个获取请求的代码:

router.get('/:user_id/catalogue',function(req,res){
User.findById(req.params.user_id,function(err,foundUser){
    if(err){
        console.log(err);
    }

    else{
        var userBooks=[];
        var userBooksIds=foundUser.catalogue;
        userBooksIds.forEach((book_id)=>{
            Book.findById(book_id,(err,foundBook)=>{
                userBooks.push(foundBook);
                console.log('function block :',userBooks);//value present
            })
            console.log('for each block :',userBooks); //empty
        })
        console.log('else block :',userBooks); //empty
        res.render('catalogue/catalogue_books',{books:userBooks});

    }
})
})

这里userBooks的值在else块的范围内总是为空,但它在Book.findById()的功能块中有实际值。我想将数组传递给视图。 请让我知道如何解决这个问题?

0 个答案:

没有答案