mpromise/ обещание монаха никогда не разрешается
Я не могу понять, почему мое обещание никогда не разрешается, когда я передаю ему функцию. У меня есть метод класса, как это:
test(){
return this.dbCollection.insert(...);
}
Который вставляет некоторые данные в коллекцию MongoDB через Monk. Это возвращает обещание. Я вызываю этот метод из другого класса, например так:
var testClass = new TestClass();
testClass.test().onResolve(...);
Вот где я попал в беду. Если я сделаю это:
testClass.test().onResolve(console.log('Resolved!'));
Обещание разрешается, я вижу "Решено!" в консоли и все работает как положено. Если я проверю с помощью консоли MongoDB, я увижу, что данные действительно были вставлены. Однако, если я сделаю это:
testClass.test().onResolve(function(err, data){
console.log('Resolved!');
});
Обещание никогда не разрешается, ничего не выводится на консоль, но данные все еще вставляются. Кто-нибудь когда-нибудь видел такое поведение раньше? Я считаю, что это проблема с mpromise, поэтому я пометил Mongoose, поскольку он использует тот же пакет для обещаний.
1 ответ
Спасибо за помощь @Bergi. Как вы и предполагали, обещание на самом деле не решалось. Оказалось, проблема с mpromise all()
метод (т.е., видимо, я не совсем понимаю, как это работает). test()
возвращал совокупность обещаний, используя all()
и это то, что не решало. Когда это было взято из уравнения, все работало, как ожидалось. Теперь, чтобы выяснить, что происходит с all()
...