Я получаю ошибку Mocha в моем Promise.all при запуске сохранения модели 4 mongoose, но это нормально при запуске сохранения только модели 3 mongoose.Вот пример кода под описанием () => {}.
// Blog and Tag are mongoose models.
beforeEach((done) => {
myBlog = new Blog({ title: '1st Post' });
myBlog2 = new Blog({ title: '2nd Post' });
tag1 = new Tag({ tag: 'Tag 1' });
tag2 = new Tag({ tag: 'Tag 2' });
myBlog.tag.push(tag1, tag2);
myBlog2.tag.push(tag1);
tag1.blog.push(myBlog, myBlog2);
tag2.blog.push(myBlog);
Promise.all([myBlog.save(), tag1.save(), tag2.save()])
.then(() => done());
});
it('find myBlog', (done) => {
Blog.findOne({ title: '1st Post'})
.then((blog) => {
assert(blog.title === '1st Post');
done();
});
});
Вышеупомянутый код работает хорошо, однако, когда я заменяю исходный код Promise.all на include myBlog2.save (), я получаю ошибку.
Promise.all([myBlog.save(), myBlog2.save(), tag1.save(), tag2.save()])
.then(() => done());
"before each" hook for "find myBlog":
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
Почему эточто добавление дополнительной model.save () в Promise.all () вызывает ошибку?
Я проверил mongodb, и коллекции успешно сохранены.Однако я не верю, что код it ('find myBlog') работал вообще.