Я хочу выполнить асинхронный вызов, основанный на каждом событии , поднятом реактивными расширениями, наблюдаемыми. Я также пытаюсь сохранить все синхронизированным, так как я хочу, чтобы асинхронный вызов завершился до того, как будет обработано следующее событие.Реактивные расширения Подписаться на вызов жду
Как можно было бы сделать что-то похожее на следующее? Я говорю так же, как приведенный ниже код не компилируется.
settingsChangedInMemory
.Subscribe(async _ => {
var settings = Extract();
await SaveSettings(settings);
});
Я не уверен, что это что-то изменит, но мне нужно будет подписать несколько наблюдений. Например, другая подписка вроде этого.
settingsChangedOnDisk
.Subscribe(async _ => {
var settings = await ReadSettings(settings);
Apply(settings);
});
Как вы можете использовать реактивные расширения для этого?
Действительно ли это по-прежнему относится к RX 2.0 (что предшествует вашему ответу)? Вышеприведенный код теперь компилируется, и здесь есть пример из команды RX: http://blogs.msdn.com/b/rxteam/archive/2012/03/12/reactive-extensions-v2-0-beta-available- now.aspx of a Subscribe (async() => ...) – Polemarch
Абсолютно верно. –
Не возражаете ли вы разобраться с Павлом? Они явно заявляют, что поддерживают async в подписке, и ваш ответ на самом деле не объясняет, почему разработчики Reactive ошибаются. – Salgat