使用mongoose的承诺分类文档
当我做console.log(all)
我期望找回过滤的sorting数据,而是我回来了整个原始数据。 为什么?
var Comp = require("./models/company.js"); var arr = [ {name : "comp1",industry : "industry1", ranking: 20}, {name : "comp2",industry : "industry2", ranking: 5}, {name : "comp3",industry : "industry3", ranking: 10} ] var output = {}; var promise = Comp.find({}).exec() promise.then(function(docs){ return Comp.remove({}).exec() }) promise.then(function(){ console.log("deleted") }) promise.then(function(){ return Comp.create(arr).exec() }) promise.then(function(data){ output.data = data; console.log(output) }) promise.then(function(){ return Comp.find({}, 'name -_id ranking', {sort :{ranking :1}}).exec(); }) promise.then( function(all){ console.log("test") console.log(all) }, function(error){ console.log(error) } ) promise.then(function(){ return Comp.count({}, function(count){ return count; }); }) promise.then(function(count){ console.log("count") // console.log(count) })
我的其他相关问题 。
你将所有的callback都附加在同一个承诺上。 这不是链接,而是分支 。
科:
var p = Promise.resolve(1); p.then(foo); p.then(bar); // wont wait for foo. Calls bar(1).
要链接,总是附上最后的承诺。
链:
var p = Promise.resolve(1); p = p.then(foo); p = p.then(bar); // waits for foo. Calls bar(result_from_foo).
或者干脆就是: Promise.resolve().then(foo).then(bar);