Angular 角度6传递参数穿透效应rxjs

Angular 角度6传递参数穿透效应rxjs,angular,rxjs6,Angular,Rxjs6,您好,如何将有效负载参数从mergeMap传递到switchMap? 我在clientservice.CheckValidName中使用它,但希望将其传递到sendMessage(数据,有效负载[1]) 我尝试了很多东西,但都不管用。(另一个mergemap或映射CheckValidName的结果以注入有效负载) )) 您可以将其作为mergeMap响应的一部分返回-这就是您在管道中丢失它的原因: mergeMap([payload, client] => { // now we ha

您好,如何将有效负载参数从mergeMap传递到switchMap? 我在clientservice.CheckValidName中使用它,但希望将其传递到sendMessage(数据,有效负载[1]

我尝试了很多东西,但都不管用。(另一个mergemap或映射CheckValidName的结果以注入有效负载)


))

您可以将其作为mergeMap响应的一部分返回-这就是您在管道中丢失它的原因:

mergeMap([payload, client] => {
  // now we have it, and after returning clientServiceCheck, we lose the reference to it
  return this.clientService(checkValidname(client, payload));
})
.map(result => result.data)
相反,您希望同时返回结果和数据,大致如下所示:

mergeMap([payload, client] => {
  // now we have it, and after returning clientServiceCheck, we lose the reference to it
  return mergeMap(() => [
    of(payload)
    this.clientService(checkValidname(client, payload)),
  ]);
})
.map([payload, result] => {
  // now we have both
})

您可以将其作为mergeMap响应的一部分返回-这就是您在管道中丢失它的原因:

mergeMap([payload, client] => {
  // now we have it, and after returning clientServiceCheck, we lose the reference to it
  return this.clientService(checkValidname(client, payload));
})
.map(result => result.data)
相反,您希望同时返回结果和数据,大致如下所示:

mergeMap([payload, client] => {
  // now we have it, and after returning clientServiceCheck, we lose the reference to it
  return mergeMap(() => [
    of(payload)
    this.clientService(checkValidname(client, payload)),
  ]);
})
.map([payload, result] => {
  // now we have both
})

ok将使用此解决方案更新我的问题,但它会导致一个奇怪的错误消息类型“OperatorFunction”不可分配给类型“ObservableInput”。类型“OperatorFunction”不可分配给类型“Iterable”。类型“OperatorFunction”中缺少属性“[Symbol.iterator]”。我可能是语法错误,或者是管道/操作符的确切顺序,在手机上键入可以帮您解决这个问题。我回家后会看的。ok会用这个解决方案更新我的问题,但它会给我带来一个奇怪的错误消息类型“OperatorFunction”不能分配给类型“ObservableInput”。类型“OperatorFunction”不可分配给类型“Iterable”。类型“OperatorFunction”中缺少属性“[Symbol.iterator]”。我可能是语法错误,或者是管道/操作符的确切顺序,在手机上键入可以帮您解决这个问题。我到家后再看。