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()...

Другие вопросы по тегам