Я пытаюсь изучить наблюдаемое программирование с помощью Angular (4.4.6):
Как это сделать: получить файл json из хранилища AWS / S3, сохранить содержимое (строку), вернуть содержимое в наблюдаемое.
employee.service.ts:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import 'rxjs/add/observable/of';
import * as AWS from 'aws-sdk/global';
import * as S3 from 'aws-sdk/clients/s3';
...
getNotice (userid): Observable<String> {
const params = {
Bucket: 'data.feedback.domain.de',
Key: 'employees/' + userid + '/notice/notice.json'
};
var objectData = '';
this.bucket.getObject(params, function (err, data) {
if (err) {
console.log('There was an error getting your files: ' + err);
return;
}
console.log('Successfully get file: notice.json:', data.Body.toString());
objectData = data.Body.toString();
});
console.log('objectData:', objectData);
return Observable.of(objectData);
}
...
В функции getObject я получаю файл note.json, а в консоли вижу строку, сохраненную в note.json.
Но сохранение данных с помощью objectData = data.Body.toString () не работает.
Любой намек, что я делаю неправильно?