0

我有下一个 Observable 我试图过滤以使用户进入网络但 .mapTo(phone => verifyPhoneInNetwork(phone, country)) 返回 AjaxObservable 而不是 ajax 响应

function verifyInNetwork(contacts: any, country: string) {
  const inNetworkOb = Observable
    .from(contacts)
    .map(contact => contact.phones)
    .map(phone => verifyPhoneInNetwork(phone, country))
    .first(({response}) => {
      return !response.invalid && !response.exists;
    })
    .isEmpty()
    .filter(empty => empty);
4

1 回答 1

2

如果verifyPhoneInNetowrk返回一个 Observable 你应该switchMap像这样使用:

function verifyInNetwork(contacts: any, country: string) {
  const inNetworkOb = Observable
    .from(contacts)
    .map(contact => contact.phones)
    .switchMap(phone => verifyPhoneInNetwork(phone, country))
    .first(({response}) => {
      return !response.invalid && !response.exists;
    })
    .isEmpty()
    .filter(empty => empty);

了解有关switchMap的更多信息。

于 2017-01-27T19:39:17.120 回答