2015-08-19 2 views
0

Я не могу сэкономить обещание работать в мангусте. У меня есть Option модель:Mongoose 4.1.3 сэкономленное обещание не работает

let option = new OptionModel({ 
    value: 'test', 
    vote: 0 
}); 

, который я пытаюсь сохранить:

option.save().then(function() { 
    console.log('saved') 
}); 

не работает, она не выводит ничего, кроме

option.save(function(){ 
    console.log('saved'); 
}); 

работает, выходы 'сохраняются'. Почему?

+0

Сохранение не поддерживает API обещаний (если они не исправили его с тех пор). Используйте 'Promise.promsifyAll' с синей птицей, а затем' saveAsync' –

+0

@BenjaminGruenbaum В документации говорится, что функция возвращает Promise http://mongoosejs.com/docs/api.html#model_Model-save – httpete

+1

Вы не проверяя ошибки в любом месте. – robertklep

ответ

0

Вы можете сделать схему в состоянии использовать обещание при каждом вызове, добавив следующий пакет https://www.npmjs.com/package/mongoose-promised

Это обеспечивает функции с обещанием, но заменить функцию сохранения() с saveQ().

option.saveQ().then(function() { 
    console.log('saved') 
}); 

Аналогично find() заменяется на findQ().

Смежные вопросы