В моем коде есть что-то действительно странное, я передаю значение функции. Но внутри этой функции значение равно null, и я не могу понять, почему. Я ожидал получить правильное значение, а не null.Значение строки становится нулевой внутри вызываемой функции
Внутри функции validateCampaingKeywords, когда я называю AdwordsService.isKeywordsCampaign я могу видеть, что значение campaign.customerId определена и является «1624183869»
function validateCampaingKeywords(req){
return function(campaign){
return AdwordsService
.isKeywordsCampaign(campaign.customerId,req.user.googleRefreshToken)
.then((isKeywordsCapaign) =>{
return {revert:!isKeywordsCapaign}
});
}
}
но когда я проверяю Wich значение оно имеет внутри вызываемой функции, она не определена.
export function isKeywordsCampaign(accountId,customerRefreshToken){
let lastWeekDate = new Date();
lastWeekDate.setDate(lastWeekDate.getDate() - 7);
return getCampaingsRawData(accountId,customerRefreshToken,lastWeekDate)
.then(campaignReportToCampaignDataConverter.convert).then((totalSpentValue) => {
return totalSpentValue > 0;
});
}
странная часть мне приходит в настоящее время. если я внутри вызываемой функции и проверяю, что такое значение аргументов [0], оно дает мне правильное значение;
это первая функция, вызываемая внутри моего контроллера, здесь я просто найти данную кампанию и обновить его.
// Upserts the given Campaign in the DB at the specified ID
export function upsert(req, res) {
if(req.body._id) {
delete req.body._id;
}
return Campaign.findOneAndUpdate({_id: req.params.id}, req.body, {new: true, upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()
.then(validateCampaingKeywords(req))
.then(respondWithResult(res))
.catch(handleError(res));
}
Кто-нибудь знает, почему это происходит?
Конечно, очень странно. Единственное, что имело бы смысл, состоит в том, чтобы два появления «accountId» не совпадали, т. Е. Типографическая ошибка. Но это, похоже, не так. Для хорошей меры попробуйте перепечатать или скопировать/вставить. –