Php Ionic2/Angular2 MailChimp API获取响应

Php Ionic2/Angular2 MailChimp API获取响应,php,angular,ionic2,mailchimp,Php,Angular,Ionic2,Mailchimp,好吧,我对MailChimp的反应有点问题。事情是这样的 我想检查已订阅用户的状态。我有PHP代码,它可以正常工作,我有代码,它也可以正常工作,所以我得到了响应,但我不能在它之后使用响应。下面是代码: 我有一个包含以下功能的邮件服务提供商: postCheck(post: {email: string}): Observable<any>{ const email = JSON.stringify(post); let headers = new Headers();

好吧,我对MailChimp的反应有点问题。事情是这样的

我想检查已订阅用户的状态。我有PHP代码,它可以正常工作,我有代码,它也可以正常工作,所以我得到了响应,但我不能在它之后使用响应。下面是代码:

我有一个包含以下功能的邮件服务提供商:

postCheck(post: {email: string}): Observable<any>{
    const email = JSON.stringify(post);
    let headers = new Headers();
    headers.append('Content-Type', 'application/x-www-urlencoded');
    return this.http.post('http://localhost:8100/getapi', email, {
      headers: headers
    }).map(res => {
          console.log(res.json())
          return res.json(); //add this line
       });
  }
sendCheck(email: string){
      this.mailservice.postCheck({email: email})
      .subscribe(
        response => this.response = response.status,
        error => console.log(error)
      );
  }

在主页html中,当我调用
{{response}}

时,它会写出'pending'或'subscribed'。但是在它之后,当我尝试
console.log(this.response)时它没有写出任何内容,因此在代码中我无法真正进行检查。

根据我收集的信息,您希望在数据到达后对您的响应做些什么。这需要在订阅内部执行,以确保数据可用。比如说:

sendCheck(email: string){
  this.mailservice.postCheck({email: email})
  .subscribe(response => { 
     this.response = response.status;
     // here the value has been set to response, so do what you want
     this.doSomethingWithResponse();
  )};
}

doSomethingWithResponse() {
  if(this.response == 'subscribed') {
     // do stuff
  }
}

你的回答是什么样的?你的预期产出是多少?您在哪里尝试并记录响应?此响应只是json中的状态数据,因此它只显示该文本。所以它只在
{{response}

中显示'subscribed'、'pending'等。我期望/想要一个字符串(我尝试了JSON.stringify),这样我就可以用一个简单的if语句检查状态。我尝试在.ts文件中的任何地方注销。可能还不了解状态,但您的意思是像响应状态一样,例如
200
?因为现在您正试图在响应中显示属性
状态
。如果你想知道响应的状态,你应该只做
.map(res=>res)
,然后你就可以订阅
response.status
Hmm。我实际上在postCheck函数中做了.map(res=>res),在sendCheck函数中做了订阅,不是吗?我试图更好地解释我需要什么。如果我知道这两个函数工作时正确,它会在响应中返回一个JSON文件,我需要JSON文件的状态值,可以是“subscribed”、“pending”等。最后,当我得到所有这些数据时,我只想用一个简单的If语句检查状态,如:
If(this.status==“subscribed”){发生了什么事}
好吧,我想我现在可能明白你想做什么了……意思是,在你的回复到达后做点什么。等一下,我会写一个答案。它很有效!!非常感谢你救了我的命。我已经花了两周时间试图解决这个问题。没问题,非常欢迎你,很高兴我能帮上忙!:)