XMLHttpRequest mit Beobachtbaren in Typoskript
Ich habe eine tslint problem, wenn ich versuche, Sie zu verwalten das Ergebnis eines XMLHttpRequest-aufrufen, die ich tun, um Dateien hochzuladen. Hier ist meine aktuelle Methode, die ich im internet gefunden :
//Files upload request
makeFileRequest(url: string, files: Array<File>) {
return new Promise((resolve, reject) => {
let formData: any = new FormData()
let xhr = new XMLHttpRequest()
for(let file of files) {
formData.append("uploads[]", file, file.name)
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(JSON.parse(xhr.response))
} else {
reject(xhr.response)
}
}
}
xhr.open("POST", url, true)
xhr.send(formData)
})
}
Damit es funktioniert, die Dateien sind hochgeladen und das backend antwortet eine 200 Antwort. Aber in der Methode, wo ich diese Funktion nutzen, so mache ich das :
this.makeFileRequest("theurl", this.listFiles)
.map(res => res.json())
.subscribe(
res => console.log(res),
error => console.log("fails")
)
Aber tslint sagt mir das denn bei der Karte zeigen :
TS2339 Property 'map' does not exist on type 'Promise<{}>'.
So, ich denke, es wäre besser zu verwalten, die makeFileRequest Funktion, so gibt es einen Beobachtbaren statt ein Versprechen.
Und nur für den Fall, Anmerkung I importieren "rxjs/add/Betreiber/anzeigen".
Hat jemand eine Idee ? Danke !
InformationsquelleAutor Guigui | 2016-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
map
ist eine Methode derObservable
, nichtPromise
. RückkehrObservable
wird, beheben Sie den Fehler:Die Lösung für den Fehler:
https://stackoverflow.com/a/33919897
Vergessen Sie nicht importieren
Response
:Property 'json' does not exist on type '{}'
auf .map ' - Zeile, aber das ist ein anderes problem 🙁 Aber das ist komisch, ich mache das bei anderen Beobachtbaren mapping-Anweisungjson()
ist eine Methode, die aus der Reaktion, da üblicherweise im http die Observable gibt ein Response-Objekt.Ich habe diesen Fehler: Fehler beim ausführen öffnen des XMLHttpRequest: Ungültige URL-ich bin mit Winkel 2, können Sie mir helfen? Ich bin mir ziemlich sicher, dass es nicht die URL, aber ich bin neu bei Winkel 2
es ist schwer zu sagen, was das problem ist, ohne zu sehen, den code. Klingt wie die url ist nicht korrekt.
Danke u, dass das problem war, ich wurde nicht setzen Sie die "http"
InformationsquelleAutor Andrei Zhytkevich