Rxjs forkjoin是同时运行所有可观测数据还是逐个运行?

Rxjs forkjoin是同时运行所有可观测数据还是逐个运行?,rxjs,Rxjs,这是一个例子 forkJoin( { google: ajax.getJSON('https://api.github.com/users/google'), microsoft: ajax.getJSON('https://api.github.com/users/microsoft'), users: ajax.getJSON('https://api.github.com/users') } ) .subscribe(console.log);

这是一个例子

forkJoin(
 
  {
    google: ajax.getJSON('https://api.github.com/users/google'),
    microsoft: ajax.getJSON('https://api.github.com/users/microsoft'),
    users: ajax.getJSON('https://api.github.com/users')
  }
 )
 
 .subscribe(console.log);

forkjoin中有三个API调用。我感到困惑的是,所有的API调用都会一个接一个地运行。或者它同时运行所有调用并等待响应?

在您描述的场景中,
forkJoin
的行为类似于
Promise。所有
-所有调用都是在同一时间进行的(不是一个接一个),一旦所有调用返回,forkJoin将使用这些调用的返回值触发一次,以下是官方网站的定义:

接受ObservableInput数组或ObservableInput字典对象,并返回一个Observable,该Observable以与传递的数组完全相同的顺序发出值数组

请注意,如果其中一个是可观察的(例如间隔),并且在其他两个返回之前发射了三次,则只会发射最后一个值

请参见官方网站上的下图: