Массовый вызов данных с использованием RX JS in nodejs - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу отправить большую часть данных и после ее завершения хочу перейти к следующей. Например: у меня есть эта функция:

async function test() {
  await sample.sampleStructure()
  await sample.sampleDataAdd()
  await sample.sampleDataGet()
}

Где я вызываю 3 функции для каждого вызова. Но я хотел отправить, например, 200 данных для await sample.sampleDataAdd(), и если первый ответ 200 данных будет «Успешным», то он отправит оставшиеся 200 данных. После завершения 1000 данных я хочу перейти к следующему вызову функции. Поэтому я посмотрел и думаю, что RX JS может обеспечить решение. Но я не использую, если возможно использовать фильтр и следующий для этого сценария.

async function test() {
  await sample.sampleStructure()
  // let observable = Observable.range(1,1000)
  let observable = Observable.create()
  observable
  .filter(aysnc function () {
    await sample.sampleDataAdd()
   })
  .subscribe({
    .next: async function () {
       // await sample.sampleDataAdd()
    },
    .error: function (error) {
      console.log(error)
     }
   })

Я очень новичок в rx js, поэтому также есть много ошибок. Пожалуйста, кто-нибудь может мне помочь в этом вопросе?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете использовать Promise.all для параллельного запуска заданий

const job1Result = await job1()
const job2 = sample.sampleStructure2()
const job3 = sample.sampleStructure3()
const job4 = sample.sampleStructure4()
const [job2Result, job3Result, job4Result] = await Promise.all([job2, job3, job4])

const job5 = await job5()


, тогда вы можете создать все oop, которые проходят через 10 за раз.

Если вы собираетесь ввести rx js, есть много чего еще узнать. и обработка подписок rx js и обработка ошибок могут быть довольно пугающими. Поэтому, прежде чем вводить его, попробуйте решить его без него.

...