- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在循环访问结果集然后对每个结果运行另一个查询以附加一些附加数据时遇到问题。
我查看了 Sequelize.js 的 Github 问题,发现可以 use QueryChainer to achieve this 。然而,由于我在这方面还是个新手,所以我还不知道如何做到这一点。我的 for
循环的执行是异步发生的,导致发送响应时没有附加数据。
这是我现在的做法:
// in blogs.js
var db = require('../models')
exports.findPosts = function(req, res) {
if (req.User) {
req.User.getPosts({
include: [
{ model: db.User, attributes: ['displayName', 'profilePicture'] },
{ model: db.Game, attributes: ['name'] }
]
}).success(function(posts) {
console.log('Starting the loop...')
for (var i in posts) {
db.PostLikes.count({ where: { PostId: i.id } }).success(function(likes) {
i.Likes = likes
console.log('Fetched Likes for post #' + i.id)
})
}
console.log('This should appear last!')
res.json(posts)
}).error(function(err) {
console.log(err)
res.send(404)
})
} else {
res.send(404)
}
}
上述代码导致发送响应时没有将 Likes
属性附加到每个 post
项目。由于 db.PostLikes.count()
调用的异步性,console.log
出现困惑。
如果有人可以向我展示一种使用 QueryChainer 来实现此目的的方法,那将会非常有帮助。
最佳答案
致正在寻找此问题解决方案的任何人:
我在 SequelizeJS 维护者之一的帮助下解决了这个问题 on Github 。我的解决方案的一部分是使用“bluebird”库来实现 Promise。可能可以使用不同的库,但我还没有使用任何其他库测试我的代码。
Here's a Gist of my code.我希望这可以帮助任何遇到此问题的人:)
关于javascript - 循环查询结果并使用 QueryChainer 对每个结果运行另一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23771493/
我在循环访问结果集然后对每个结果运行另一个查询以附加一些附加数据时遇到问题。 我查看了 Sequelize.js 的 Github 问题,发现可以 use QueryChainer to achiev
使用 Sequelize QueryChainer 时遇到一些困难。通常我不需要这样做,但我很早就决定处理自己的关联,而不是使用关联管理中内置的模块(结果证明这是相当痛苦的)。 我正在编写我的 RES
我是一名优秀的程序员,十分优秀!