我有一个包含几个元素(字体)的 Observable
myFontsObservable = Observable.of<Font>(new Font("font1"), new Font("font2"));
现在我想订阅这个Observable,处理所有字体并将它们注册到一个文档中,在处理完所有字体后,返回文档
public registerFonts(myFontsObservable): Observable<Document> {
doc = new Document();
myFontsObservable.subscribe(
font => doc.register(font);
(err) => {},
() => return Observable.of(doc);
);
// I need to return something here too
}
此代码无法编译,因为我还需要在订阅之外返回一些内容。但是,如果我在那里返回一些内容,那么当我调用 registerFonts(...) 时,我会得到错误的值,因为它尚未完成
我该怎么做?
最佳答案
你可以尝试一些类似的事情
public registerFonts(myFontsObservable): Observable<Document> {
return myFontsObservable
.reduce((doc, font) => {
doc.register(font);
return doc
}, new Document())
}
关于javascript - Observable 完成后返回单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734525/