powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Синхронно получить результат асинхронного вызова
6 сообщений из 6, страница 1 из 1
Синхронно получить результат асинхронного вызова
    #39573749
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет,
что-то затруднился.

Есть функция, которая должна вернуть true или false в зависимости от результата асинхронного вызова внутри неё. Не могу сообразить как это сделать. Такой вариант не проходит:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function Get() {
    var result = true;

    update()
    .then(function() { //angularjs' promice
       result = true;
    }).catch(function(ex) {
       result = false;
    });

  return result;
}         



Здесь функция всегда возвращает true, так как строка return result; выполняется раньше, чем отработает update();. А как сделать чтобы Get() вернула result в зависимости от результата вызова update()? То есть, если выполнится блок catch то функция вернёт false?
(return false; внутри catch то же не сработает).
...
Рейтинг: 0 / 0
Синхронно получить результат асинхронного вызова
    #39573779
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
MyController.$inject = [...];
function MyController(...)
var vm = this;
...

function Get();
    vm.Result = false;
    update()
    .then(function() { //angularjs' promice
       vm.Result = true;
    }).catch(function(ex) {
       vm.Result = false;
    });

  }


во View юзайте vm.Result
...
Рейтинг: 0 / 0
Синхронно получить результат асинхронного вызова
    #39573783
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
... Get() {
...
Рейтинг: 0 / 0
Синхронно получить результат асинхронного вызова
    #39573795
rigor mortis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, но Get() в итоге ничего не возвращает. Мне нужно чтобы именно Get() вернула true или false так как я передаю её в другой объект, от неё зависит поевдвние. Там я ничего менять не могу.
...
Рейтинг: 0 / 0
Синхронно получить результат асинхронного вызова
    #39573921
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем? что вы во view делаете, покажите. или вам надо вызвать ещё некий метод?
если так, то вызвайте его в .then() или юзайте
Код: sql
1.
$rootScope.$broadcast('mygetfinish', somedata) 


, а потом ловите его через

Код: sql
1.
2.
3.
$scope.$on('mygetfinish', function (data) {
            //next rules
});
...
Рейтинг: 0 / 0
Синхронно получить результат асинхронного вызова
    #39573929
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё можете .finally() заюзать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Синхронно получить результат асинхронного вызова
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]