Ankur был прав - html2pdf
, используемый с или без его API, основанного на обещаниях, является асинхронным по своей природе, поэтому он не остановит ваш код от продолжения, пока он обрабатывает запрос, и поскольку установка window.location.href
Практически мгновенно, перенаправление достигается до того, как html2pdf сможет завершиться.
Поскольку html2pdf
имеет API, основанный на обещаниях, этого очень легко избежать - просто подождите, пока обещание сохранения не разрешится, чтобы перенаправить, вот так:
html2pdf().from(element).set(opt).save().then(()=>{
window.location.href = "index.php";
});
Обратите внимание, что это все еще перенаправляет пользователя, пока диалог сохранения все еще открыт.Я не вижу обещания, когда оно закрыто в документации (возможно, потому что сторона JS не знает об этом), но это не мешает html2pdf работать после генерации файлаBLOB-объект появляется перед перенаправлением страницы.