1
將第一個或第二個集合刪除的方法是正確的嗎?在貓鼬中級聯創建/刪除集合的好方法
我覺得這是第二個,但第一個更容易使用。是否可以使用承諾來簡化代碼的讀取?
第一種方式:
beforeEach((done) => {
//Before each test we empty the database
//Remove Roles
Role.remove({}, (err) => {});
//Remove Users
User.remove({}, (err) => {});
// Remove Workouts
Workout.remove({}, (err) => {});
// Create user
Role.create({"name" : "Administrator"},(err, adminRole) => {
User.create({ firstname : "***", businessId: "1", lastname : "***", email : "***", roles:[adminRole]}, (err) => {
done();
});
});
});`
方式二:
beforeEach((done) => {
//Before each test we empty the database
//Remove Roles
Role.remove({}, (err) => {
//Remove Users
User.remove({}, (err) => {
// Remove Workouts
Workout.remove({}, (err) => {
// Create user
Role.create({"name" : "Administrator"},(err, adminRole) => {
User.create({ firstname : "***", businessId: "1", lastname : "***", email : "***", roles:[adminRole]}, (err) => {
done();
});
});
});
});
});
});
謝謝Alberto。事實上,你對Promise的主張更性感:-)。第一個問題:如果User.remove({})失敗,則不會執行Workout.remove({})? –
@oliviercherrier確實如此。如果'User.remove({})'失敗,它會直接跳到'catch' –
第二個問題:如何使用第一種方式異步?從User.remove()結束或在User.remove結束之前是否可以執行Workout .remove是否執行? –