Это может быть не самый лучший способ, но вот что мне нужно было сделать, поскольку моя версия jquery не самая новая, мне пришлось сохранить функцию ajax в переменное имя xhr, чтобы получить заголовок ответа
success: function (data) {
var disposition = xhr.getResponseHeader('content-disposition');
var matches = /"([^"]*)"/.exec(disposition);
var filename = (matches != null && matches[1] ? matches[1] : 'file.pdf');
var blob = new Blob([data], {type: 'application/pdf'});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
, адаптированный из https://nehalist.io/downloading-files-from-post-requests/
Прямое упрощение вашего кода:
while (
some_very_long_computation &&
another_very_long_computation
) {
...
}
Если вы хотите сохранить переменные a
и b
:
bool a, b;
while (
(a = some_very_long_computation) &&
(b = another_very_long_computation)
) {
...
}
Если вы не хотите чтобы поместить условия в условие while
:
while (true) {
bool a = some_very_long_computation;
bool b = another_very_long_computation;
if (!(a && b)) {
break;
}
...
}
Вы также можете создать вспомогательные лямбды (которые имеют доступ к локальным переменным):
auto fa = [&]() { return some_very_long_computation; };
auto fb = [&]() { return another_very_long_computation; };
while (fa() && fb()) {
...
}