Библиотека XML-RPC для [закрытого] C++

Вы можете использовать оператор таймера для планирования запросов, а затем останавливаться при получении первого статуса «выполнено», см. Пример:

const { of, interval, timer } = rxjs; // = require("rxjs")
const { tap, take, filter, mergeMap } = rxjs.operators; // = require("rxjs/operators")

// simulate API methods
const submitJob = id => of('newjob');
let tries = 0;
function getStatus() {
  tries += 1;
  if (tries === 5) return of('done');
  return of('working...');
}
const getResult = () => of('result');

const job$ = submitJob().pipe(
  tap(e => console.log('started job: ', e)),
  // wait 500ms and then make request every 1000ms
  mergeMap(e => timer(500, 1000).pipe(
    // request status every 1 second
    mergeMap(t => getStatus()),
    tap(e => console.log('status: ', e)),
    // when 1 'done' received - stop polling
    filter(status => status === 'done'),
    take(1)
  )),
  mergeMap(e => getResult())
)

job$.subscribe(e => console.log('completed: ', e));

5
задан Nathan 21 October 2008 в 17:06
поделиться

2 ответа

Вы могли бы хотеть проверить или xmlrpc-c или xmlrpc ++.

5
ответ дан 14 December 2019 в 01:20
поделиться

Я нашел список xml-rpc реализаций на многих различных языках. Надо надеяться, этот список будет полезен для других.

4
ответ дан 14 December 2019 в 01:20
поделиться