Pracuję od mangusta/q obietnica ramowy próbka here, ale wydaje się mieć pewne problemy z nfbind przy próbie użycia findOne, głównie dlatego, że próbki z ramy Q nie wydają się pasować te w sednie.mangusta i q obietnice
Mój kod:
var mongoose = require('mongoose');
var Q = require('q');
var user_schema = mongoose.Schema({username:String, last_touched:Date, app_ids:[String]});
var user = mongoose.model('user', user_schema);
exports.user = user;
exports.user.find = Q.nfbind(user.find);
exports.user.findOne = Q.nfbind(user.findOne);
Jeśli zadzwonię user.findOne({username:'test'}).then(function(err, user) { ... }
, użytkownik zawsze jest niezdefiniowany. Jeśli usunę eksport i użyję nie obiecywanej wersji z wywołaniami zwrotnymi, otrzymam użytkownika. Brakuje mi jakiejś specjalnej magii, ale po zapoznaniu się z implementacją kodu, przykładem z github Q i demo mangusty ... Nic tak naprawdę nie wyskakuje. Jakieś pomysły dotyczące tego, jak mogę uzyskać findOne
współpracować z Q?
Próbowałem również ustawić funkcje nfbind
w źródle, a nie w module, ale bezskutecznie.
Sprawdź również tę odpowiedź http://stackoverflow.com/questions/11912573/node-js-deferred-promisify-mongoose/11931908 –