मेरे पास एक अवलोकन योग्य के साथ एक फाइल रीडर है जो इस तरह दिखता है:

readDocument(fileChangeEvent: Event) {
    return new Observable<Object>(obs => {
        const file = (fileChangeEvent.target as HTMLInputElement).files[0];
        if (file) {
            const fileReader = new FileReader();
            fileReader.onload = (e) => {
                obs.next(fileReader.result);
            }
            fileReader.readAsText(file);
        }
    });
}

मैं सदस्यता में फ़ाइल की सामग्री का उपयोग करता हूं:

this.readDocument(document).subscribe(content => {

}

सदस्यता में, मैं फ़ाइल का नाम कैसे प्राप्त कर सकता हूं?

कुछ इस तरह:

   this.readDocument(document).subscribe(content => {
        filename = content.getfilename;
    }

क्या यह संभव है? यहाँ समाधान क्या हो सकता है?

0
J.Doe 19 सितंबर 2019, 11:09

1 उत्तर

सबसे बढ़िया उत्तर

आप इसे केवल Observable में वापस कर सकते हैं।

readDocument(fileChangeEvent: Event) {
    return new Observable<any>(obs => {
        const file = (fileChangeEvent.target as HTMLInputElement).files[0];
        if (file) {
            const fileReader = new FileReader();
            fileReader.onload = (e) => {
                obs.next({
                   name: file.name,
                   result: fileReader.result,
                });
            }
            fileReader.readAsText(file);
        }
    });
}

अद्यतन यहां बताया गया है कि मैंने आपको कैसे संशोधित किया update_chart() और यह काम करता है

update_chart(document) {
  this.readDocument(document).subscribe((file: any) => {
    console.log(file.name);
  });
}
1
Norbert Bartko 19 सितंबर 2019, 13:20