Моя цель - перенаправить страницу после создания файла, но мой код ниже не создает файл, потому что он перенаправляет на другую страницу. Как я могу сгенерировать файл после перенаправления? возможно ли это сделать в сценариях на стороне сервера (Suitelet)?
Suitelet SuiteScript 2.0:
response.writeFile({
file:loanPortFolio
});
//There are no redirect before, only generate file, but because i can't generate again ,
//I need to refresh the page to generate again. so i Add this line of code to redirect me to same page.
response.sendRedirect({
type: http.RedirectType.SUITELET,
identifier : 'customscript_loan_port_detailed_report',
id : 'customdeploy_loan_portf_detailed_report',
parameters: {
type : 'monthly'
}
});
//Result? I can't generate because it redirect to another page -_-
Цель этого скрипта — создать ежемесячный отчет и загрузить его на компьютер, чтобы они могли просмотреть его позже. Я не хочу, чтобы пользователь заходил в картотеку и загружал ее, если я это сделаю, созданная мной страница будет бесполезной. на самом деле загрузка файла работает, но поскольку пользователю нужно нажать кнопку отправки, чтобы загрузить файл, пользователь не сможет сгенерировать его снова без обновления страницы.
чтобы пользователь мог снова загрузить файл без обновления страницы, я добавляю перенаправление, чтобы он перенаправлялся на ту же страницу, но эта идея не удалась, потому что перенаправление не будет ждать, пока файл загрузит его.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Простой ответ: у вас не может быть обоих: writefile и redirect: если одно выполняется, другое будет «отменено».
Вы не вставили полный код, но я предполагаю, что вы используете форму в пакете, и вы добавили кнопку отправки для своей формы, а в POST вы создаете файл и используете writeFile.
Если это так, то один из способов достижения вашей цели — в сообщении после создания файла вместо использования writeFile вы можете добавить поле HTML в свою форму и установить его значение примерно так:
'<a href=[url] target=_blank>Download file</a>'
with: [url] — это ссылка, которую вы можете получить из своего файлового объекта (loanPortFolio).
При этом после отправки пользователь увидит ссылку, а поскольку целью является «_blank», файл будет сгенерирован в новой вкладке/окне, поэтому окно формы останется открытым, и его можно будет использовать снова.
Итак, вы хотите иметь возможность скачать этот файл или сохранить его в картотеке? Рендеринг и перенаправление не имеют смысла. Разработайте шаги, которые вы хотите достичь, и это будет удобно, чтобы помочь вам.