не могу получить данные ответа в угловых 5, в то время как ядро ​​Asp.net послал его - PullRequest
0 голосов
/ 08 октября 2018

Я написал два метода для получения данных из API asp.net.На вкладке «Сеть» инструментов разработчика Chrome ответ (данные о прибытии с сервера) правильный, но метод 1 сталкивается с этой ошибкой:

Error: scrs.find is not a function
at MapSubscriber.eval [as project] 

and scrs[in method 2] is undefined.

Может кто-нибудь помочь мне найти проблему, пожалуйста?

// ------------- метод 1 ---------------------------

// ------------ в MySerivce -------------------------

this.scoreStore = {scores:[]};
this.scoreSubjext = <BehaviorSubject<IScore[]>> new BehaviorSubject([]);
this.scores = this.scoreSubjext.asObservable();

GetScore(st)
{
var header = new HttpHeaders({ "Content-Type": "application/json" });
return this.httpClnt.post(this.BASE_URL+this.URL_GET_SCORES,st,{headers: header})    
.subscribe((resp:any)=>{
  this.scoreStore.scores = resp;
  this.scoreSubjext.next(Object.assign({},this.scoreStore).scores);
},catchError((error: any) => ErrorObservable.create(error))

);
}

// ------------------ вызовите метод и найдите желаемый результат

 this.myService.GetScore(this.st);

this.score = this.mySerrvice.scores.pipe(map(scrs =>{
    return scrs.find(scr => scr.id === id);
  }));

  <div *ngIf="(score | async | json) as userScore">
  <li>{{userScore.grade}}</li>
  <li>{{userScore. ...}}</li>
  </div>


//???????????????

 Error: scrs.find is not a function
at MapSubscriber.eval [as project] 

, пока на вкладке сети инструментов разработчика браузера есть действительный ответ.

// ----------------------- Метод 2 ----------------

// ----------------------- в MySerivce -----------

GetScore2(st)
{
var header = new HttpHeaders({ "Content-Type": "application/json" });
return this.httpClnt.post(this.BASE_URL+this.URL_GET_SCORES,st,{headers: 
header}).toPromise();    
}

// ------------------------ вызов метода -----------------------

let scrs = await this.myService.GetScore2(this.st);
console.log(scrs);

// ????????????????????

scrs не определено, пока существует действительныйответ во вкладке сети инструментов разработчика браузера.

большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...