преобразовать определенный тип обратного вызова в наблюдаемый - PullRequest
1 голос
/ 08 января 2020

У меня есть API, подобный этому: (Это API Wechat-минипрограммы.)

wx.request({
  url: 'test.php', 
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' 
  },
  success (res) {
    console.log(res.data)
  },
  fail(err) {
    console.log(err)
  },
  complete(res) {
    console.log(res.data)
  }
})

Однако я хочу использовать его так: (Я хочу использовать его как наблюдаемый.)

rxwx.request({
  url: 'test.php', 
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' 
  },
}).subscribe(
  (res) => {
    console.log(res.data)
  },
  (err) => {
    console.log(err)
  },
  (res) => {
    console.log(res.data)
  }
)

Я не могу преобразовать wx.login с bindCallback или bindNodeCallback. Пожалуйста помоги. Заранее спасибо: D

1 Ответ

2 голосов
/ 08 января 2020

Вместо этого используйте наблюдаемый конструктор

const request=new Observable(emitter=>{
wx.request({
  url: 'test.php', 
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' 
  },
  success:emitter.next
  fail:emitter.error
  complete:emitter.complete
})

return ()=>{ //... clearn up logic here  }
}
...