Подписаться на синхронизацию в ionic

У меня проблема с синхронизацией. Например, у меня есть два метода:

methodOne.subscribe((resp){
    return resp;
});

methodoTwo(resp).subscribe((resp2){     
    return resp2; 
});

Второй метод выполняется до возврата из первого метода. Есть ли какое-либо решение для решения этой проблемы синхронизации без помещения второго метода в один? Пользуюсь иоником 3.


person Vinicius Andrade    schedule 04.04.2018    source источник
comment
зависит ли вызов methodTwo от ответа methodOne?   -  person Suraj Rao    schedule 04.04.2018
comment
Точно, methodTwo зависит от methodOne.   -  person Vinicius Andrade    schedule 04.04.2018
comment
Поскольку Promise и Observable асинхронны, это сложно. Проверьте await, хотя вам нужен Promise и не уверен, что он хорошо работает с ionic. В противном случае ваш ответ в основном «нет» или просто предоставьте обходной путь, чтобы код выглядел аккуратно, но подписки по-прежнему вложены.   -  person Ivar Reukers    schedule 04.04.2018


Ответы (1)


если methodOne и methodTwo() наблюдаемы, вы делаете

methodOne.swichMap((resp)=>methodoTwo(resp)).subscribe()
person Fan Cheung    schedule 04.04.2018
comment
Возможно, это сработает в примере, который я привел выше, но это был просто пример, чтобы попытаться проиллюстрировать ситуацию. В проекте есть другие функции и звонки между подписками и у меня проблемы с синхронизацией. Я не знаю, существует ли он в Ionic, но я думал попробовать что-то вроде семафоров, используемых в C++, для работы с синхронизацией потоков, но я не знаю, лучшее ли это решение. - person Vinicius Andrade; 04.04.2018
comment
Если вы можете проиллюстрировать асинхронный поток, я могу попытаться помочь. В rxjs можно использовать множество операторов для различных вариантов использования. - person Fan Cheung; 05.04.2018