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

Schreibe einen Kommentar