返回值调用方法

我为我的ExpressJS项目使用Sequelize。

我在我的模型中有这个代码:

exports.findAll = () => { let data = []; Book.findAll().then(books => { data = books; // book has array of objects }); return data; // but data doesn't have even after assigning books to data }; 

我想方法findAll返回值由BookController调用时

       

网上收集的解决方案 "返回值调用方法"

你同步返回一个asynchronous值,你可能想在这种情况下做什么,因为sequelize返回findAll方法的承诺是

 exports.findAll = () => { let data = []; return Book.findAll(); }; 

然后在你的控制器中,假设你已经将这个模块作为BookService需要,并且处于一个列表控制器的方法中,你可以这样做来获取书籍

 list(req, res) { return BookService.findAll().then(books => { data = books; // book has array of objects console.log(data); // you have your books return res.json(books); }); }