Я пытаюсь использовать неявно обещание-затем при доступе к mongodb
через мангуста.
Если у меня есть новые данные на ту же дату и пользователя, я должен удалить старые данные и вставить новые данные.
раздел A работает нормально, но я думаю, что смысл .then
в том, чтобы предотвратить отступы, как у нас в методах обратного вызова.
Кроме того, я не знаю, нужно ли мне .catch
на каждый .then
в этом случае.
Раздел B, однако, не работает, потому что createdData
, возвращаемый в .then(function(createdData){})
, ссылается на метод DailyData.remove()
и возвращает совершенно другой объект.
A:
DailyData.remove({date: getCurrentDate(), owner: currUser})
.then(function(){
DailyData.create({date: getCurrentDate(), owner: currUser})
.then(function(createdData){
createdDataGlobal = createdData;
UpdatedInnerData.remove({date: getCurrentDate(), owner: currUser})
.then(function(){
insertNewInnerData();
})
.catch(handleError);
})
.catch(handleError);
})
.catch(handleError);
B
DailyData.remove({date: getCurrentDate(), owner: currUser})
.then(function(){
DailyData.create({date: getCurrentDate(), owner: currUser});
})
.then(function(createdData){
createdDataGlobal = createdData;
UpdatedInnerData.remove({date: getCurrentDate(), owner: currUser});
})
.then(function(createdData){
insertNewInnerData();
})
.catch(handleError);