我正在轮询一个长时间运行的进程以了解 javascript 中的成功/失败。如果该过程失败,我需要它导航到特定页面并显示flash['alert']
. 我正在使用 导航到一个新页面window.location.href
,但我不知道如何flash['alert']
从 js 创建一个。作为一个完整的临时破解,我将错误消息作为 url 参数传递。然后在我的控制器new
操作中,我检查参数并创建flash['alert']
是否存在错误。我不喜欢这个解决方案,我假设有一种更清洁的方法可以做到这一点。
function checkReportStatus() {
var report_id = $(".report").data("report-id");
$.get('/reports/' + report_id + '/check_report_status', function(report_status) {
if (report_status === 'completed') {
location.reload();
}
else if (report_status === 'error' || report_status === 'failed') {
window.location.href = "new?error=ERROR_MESSAGE";
}
else {
console.log("Report generation in progress...");
setTimeout(checkReportStatus, 3000);
}
});
}