我无法使waterline的stream
工作。我正在跟踪流文档。
我使用stream
正确吗?
MyModel.stream({ isSubscribed: true }).populate("user").eachBatch(10, function(err, records){
console.log("Code reached inside stream results")
})
// Output: Prints nothing
而find
函数工作得很好
MyModel.find({ isSubscribed: true }).populate("user").exec(function(err, records){
console.log("Found "+ records.length+ " records")
})
// Output: Prints "Found 12 records"
更新:这个问题似乎是特定于eachBatch
功能。不确定具体是什么,但测试了eachRecord
,确实有效。
await MyModel.stream({ isSubscribed: true }).populate("user").eachRecord(async function(record){
console.log("Code reached inside stream results")
})
// Output: Code reached inside stream results
水线stream
文档没有帮助。在查看了流的水线代码后,我编辑了我的代码如下,它工作了,即eachBatch回调内部的代码现在是可访问的
MyModel.stream({
isSubscribed: true
}).eachBatch(function(records, next){
console.log("Reachable!! Found records: ", records);
next();
}).exec(function(err){
console.log("Done with stream query")
})