Я создаю функцию автозаполнения.
1) Внутренняя служба RESTful возвращает следующий ответ для частично введенного ключевого слова.
JSON-ответ
{
"suggest": {
"resultsuggest": [
{
"text": "Ke",
"offset": 0,
"length": 2,
"options": [
{
"text": "Kevin Johnson",
"_index": "customernames",
"_type": "_doc",
"_id": "1",
"_score": 3
}]
}
]
}
}
2) Что я должен сделать в приложении Angular, чтобы извлечь массив параметров из ответа JSON и вернуть его обратно для этой функции извлечения ??
Примечание. Я хочу использовать Promise вместо Observable.
fetch(params?: HttpParams): Promise<any> {
const query = params.get('query');
const headers = new HttpHeaders().set("Content-Type", "application/json");
let postData = "{ \"_source\": \"suggest\", \"suggest\": {\"resultsuggest\" : { \"prefix\" : \""+query+"\",\"completion\" : { \"field\" : \"suggest\", \"size\" : 5 }}}}";
return this._http.post<any[]>('http://127.0.0.1:9200/customernames/_search?pretty',postData, {headers})
.pipe(map(result=> {
// what should I do to extract the Options array from the JSON response and return it back in this fetch function??
return ????;
}),
delay(400)
).toPromise();
}
Ценю вашу помощь!
спасибо!
Обновлено:
1) Ответ JSON исправлен.
2) изменен возврат this._http.post<any> to return this._http.post<any[]>