я написал следующую функцию, которая предназначена для проверки статуса веб-страницы, а затем отправки результатов по электронной почте определенным получателям (toList
).
function testStatusNotif () {
var url = hostname + "/monitoring";
var listTo = listGroup;
var response = UrlFetchApp.fetch(url, params);
if (response.getResponseCode() !== 200) {
var message = 'Failed (test): response ' + response.getResponseCode();
MailApp.sendEmail(listTo, "check the platform is up and operational", message);
} else {
var message = 'Passed (test): response ' + response.getResponseCode();
MailApp.sendEmail(listTo, "trade platform is ready to open", message);
}
}
пока эта функция работает как есть, я хочу разделить шаги sendMail
на их собственные функции. ключевой драйвер заключается в том, что я хочу обслуживать больше сценариев, а также иметь разных получателей и сообщения для каждого из сценариев. я также хочу повторно использовать функции sendMail
для других тестов. однако, когда я их разделяю, я получаю undefined
вместо message
.
вот пример проверки, которая возвращает undefined
.
function testStatusNotif () {
var url = hostname + "/monitoring";
var response = UrlFetchApp.fetch(url, params);
if (response.getResponseCode() !== 200) {
var message = 'Failed (test): response ' + response.getResponseCode();
failEmail(message);
} else {
var message = 'Passed (test): response ' + response.getResponseCode();
passEmail(message);
}
return message;
}
function failEmail() {
var listTo = listFails;
MailApp.sendEmail(listTo, "check the platform is up and operational", sampleCheck.message);
}
может ли кто-нибудь сказать мне, где я ошибаюсь?
Причина undefined
в том, что значение не принимается функцией failEmail
. Если вы хотите передать message
failEmail(message)
и passEmail(message)
, измените следующим образом.
function failEmail() {
var listTo = listFails;
MailApp.sendEmail(listTo, "check the platform is up and operational", sampleCheck.message);
}
function failEmail(message) { // Modified
var listTo = listFails;
MailApp.sendEmail(listTo, "check the platform is up and operational", message); // Modified
}
sampleCheck
я не уверен из вашего сценария. Поэтому я изменил на message
.passEmail(message)
, если ситуация аналогична failEmail(message)
, пожалуйста, измените таким же образом.Если я неправильно понял ваш вопрос, и это не тот результат, который вы хотите, приношу свои извинения.
re: sampleCheck
приношу свои извинения, так изначально называлась функция testStatusNotif
. я изменил его, прежде чем публиковать здесь, надеясь, что он лучше описывает то, что я пытался сделать, но забыл обновить все ссылки.
@ mitch-NZ Спасибо за ответ. Я рад, что ваша проблема была решена. А так же спасибо за дополнительную информацию. Я мог понять об этом.
спасибо @Tanaike, приятно. такое маленькое изменение, но такое важное.