Size: a a a

iOS Developers — русскоговорящее сообщество

2019 November 07

S

Sergey in iOS Developers — русскоговорящее сообщество
Есть вопрос по Сигналам
Давно наблюдаю такую имплементацию в софте Telegram и хотелось бы понять некоторые вещи.

У них есть крутой пайп оператор (который хвалит @renren_san ), разобрался с deliverOnMainQueue код, а так же почитал теорию о Rx чутка и разобрался с take(count:) код

Пришел я из  async - await языка и меня интересует, можно ли из такого Сигнала получить значение "прямо сейчас", то есть эвэйтнуть его?)

Условно:

let signal : <Signal, NoError> = ...
(signal
  |> take(1)
  |> deliverOnMainQueue).start(next: { value in
    print("MY VALUE", value)
})
print("END")


Естественно выводится
END
MY VALUE ...


В таком случае пользоваться семафорами, без выполнения на главной очереди?
let semaphore = DispatchSemaphore(value: 0)

print("MY VALUE")
semaphore.signal()

semaphore.wait()


Есть ли варианты красивее, лучше, или сама идея блочить тред уже смешно?)
источник

РЛ

Руслан Лутфуллин in iOS Developers — русскоговорящее сообщество
Блочить тред ни есть тоже самое, что и await
источник

РЛ

Руслан Лутфуллин in iOS Developers — русскоговорящее сообщество
Ты ведь в курсе, что await это обертка над промисом
источник

S

Sergey in iOS Developers — русскоговорящее сообщество
Руслан Лутфуллин
Ты ведь в курсе, что await это обертка над промисом
Я просто увидел в этой либе отдельные промисы (под названием Promise) и совсем запутался
источник

РЛ

Руслан Лутфуллин in iOS Developers — русскоговорящее сообщество
Лучше сделай что-то вроде такого:
let group = DispatchGroup()

group.enter()
let signal : <Signal, NoError> = ...
(signal
  |> take(1)
  |> deliverOnMainQueue).start(next: { value in
    print("MY VALUE", value)
          group.leave()
})

group.notify(queue: .main) {
 print("END")
}
источник

I

Ilya in iOS Developers — русскоговорящее сообщество
Зачем вообще такое? Это концепциям реактивщины противоречит
источник

IC

Ilya Chikmarev in iOS Developers — русскоговорящее сообщество
А есть кто работал с AVAudioSession и кастомныеми плеерами, а не AVAudioPlayer?

Просто такой кейс - включаю поток через свой плеер, перехожу на вк, включаю там, возвращаюсь, но поток не включается в моем плеере. А, AVAudioPlayer включается с любыми песенками

Причем сессию активирую и тд
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
Ilya Chikmarev
А есть кто работал с AVAudioSession и кастомныеми плеерами, а не AVAudioPlayer?

Просто такой кейс - включаю поток через свой плеер, перехожу на вк, включаю там, возвращаюсь, но поток не включается в моем плеере. А, AVAudioPlayer включается с любыми песенками

Причем сессию активирую и тд
interrupt загугли
источник

IC

Ilya Chikmarev in iOS Developers — русскоговорящее сообщество
Sergey Vanichkin
interrupt загугли
Да я знаю, и обработчик на него есть. Но если не пришло событие об окончании интерапта - ему пох. Даже если переактивировать сессию
источник

S

Sergey in iOS Developers — русскоговорящее сообщество
Ничего плохого про тебя не писал
источник

S

Sergey in iOS Developers — русскоговорящее сообщество
Я Сергей
источник

S

Sergey in iOS Developers — русскоговорящее сообщество
Ilya
Зачем вообще такое? Это концепциям реактивщины противоречит
Лучше не спрашивать :))
Просто есть желание получить значение на данный момент, а не оборачивать всё в промис (хотя я уже боюсь ошибиться в терминах)
источник

AS

Aleksei Sherbakov in iOS Developers — русскоговорящее сообщество
а ты чоткий тип
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
Aleksei Sherbakov
а ты чоткий тип
лучше не беси Вовку …
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
))
источник

AS

Aleksei Sherbakov in iOS Developers — русскоговорящее сообщество
Sergey Vanichkin
лучше не беси Вовку …
потому что...?
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
Aleksei Sherbakov
потому что...?
потому что он занят важными делами, думаю этого достоаточно )
источник

AS

Aleksei Sherbakov in iOS Developers — русскоговорящее сообщество
Ясно
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
подскажите лучше, пытаюсь пройти нотаризацию все идет как надо но в конце вылетает во это
источник

SV

Sergey Vanichkin in iOS Developers — русскоговорящее сообщество
что я делаю не так?
источник