2016-03-21 18 views
0

ile yanıt sonuçlarında çalışma işlevi S) Her bir işlev için (örneğin, her öğenin kimliğini adın sonuna ekleyen bir işlev) nasıl çalıştırabilirim Bu çağrıdaki sonuçların sırası nedir?İyonik 2: Http.get(), her satır için Rx

[ 
    { id: 1. title: 'first', completed: 1 }, 
    { id: 2. title: 'second', completed: 1 }, 
    { id: 3. title: 'third', completed: 1 } 
] 

Benim getTodos kodu:

return this._http.get(url, { 
    headers: headers 
}).map(res => <Todo[]>res.json()); 

Benim Todo arayüzü:

export interface Todo { 
    id: number; 
    title: string; 
    completed: boolean; 
} 

Benim örnek işlevi İsterdim

tepkim aşağıda bir şey gibi olduğunu varsayalım Her yanıt satırında yayınlanmak için:

function addToTitle(item) { 
    item.title += " " + item.id; 
} 

cevap

4

Sen Dizilerin map fonksiyonunu kullanarak başka map operatörü ekleyebilirsiniz:

return this._http.get(url, { 
    headers: headers 
}).map(res => <Todo[]>res.json()) 
.map((todos) => { 
    todos.forEach((todo) => { 
    todo.title += ' ' + todo.id; 
    }); 
    return todos; 
}); 
+0

Bunu denedim, ama aslında hiç dönmez, geçersiz olur! – Dave

+0

"Boşluk" ile ne demek istiyorsun? Geri gönderilenler gözlemlendiğinde verileri almazsınız. –

+0

Evet, tam olarak. Yöntem geri dönmez. Geçersiz. – Dave