Задать вопрос
@maryaTurova

Как ожидать ответа в цикле?

Пишу не большое приложение на python в качестве gui - pywebview с использованием API.
Как в примере реализовать ожидание ответа от "pywebview.api.event_browser"в цикле ?
function all_stop(){
    var obj = {};
    $('[onClick="all_stop()"]').prop("disabled",true).css('opacity', '0.6');
    $('.add').each(function(){
        var prof = $(this).attr('class').replace('add ','');
        obj[prof] = {};
    });
    for(var prof in obj){
        var temp_obj = {};
        temp_obj[prof] = obj[prof];
        pywebview.api.event_browser(temp_obj, 'stop').then(function(response){
            result_txt(response);
        });
    }
    $('[onClick="all_stop()"]').prop("disabled",false).css('opacity', '1').hide();
    $('[onClick="all_start()"]').show();
}
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
@cy6eria
Не совсем понятна ваша цель. В принципе, этот код и есть ожидание ответа:

pywebview.api.event_browser(temp_obj, 'stop').then(function(response){
  result_txt(response);
});


Если нужно дождаться всех ответов, а потом что-то сделать, то нужен Promise.all.

Если нужно по очереди подписываться на события и вызывать ожидание следующего после наступления текущего, то, наверно, лучше использовать не цикл, а рекурсию или функции-генераторы.

Если опишите проблему подробнее, то попробую помочь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@maryaTurova Автор вопроса
такая конструкция помогла.
async function event_browser(obj){
    await pywebview.api.event_browser(obj, 'stop').then(function(response){
        result_txt(response);
    });
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы