Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将此对象传递给concatMap映射函数?_Angular_Typescript_Rxjs - Fatal编程技术网

Angular 如何将此对象传递给concatMap映射函数?

Angular 如何将此对象传递给concatMap映射函数?,angular,typescript,rxjs,Angular,Typescript,Rxjs,我正在构建用于缓存图像的Angular2模块。我使用的是提供程序服务,它返回加载资源的可观察值,如果已经缓存,则返回同步,否则返回异步 然而,我试图在应用程序启动时预加载一批图像,结果遇到了concatMap函数的问题。 My provider使用集合对象私有cachedResources:DictMap;存储缓存数据,如果由concatMap调用,则getImage函数无法访问缓存数据。 那么如何使它在函数中可见呢?concatMap返回unobservatable,它的回调必须返回一个内

我正在构建用于缓存图像的Angular2模块。我使用的是提供程序服务,它返回加载资源的可观察值,如果已经缓存,则返回同步,否则返回异步

然而,我试图在应用程序启动时预加载一批图像,结果遇到了concatMap函数的问题。

My provider使用集合对象私有cachedResources:DictMap;存储缓存数据,如果由concatMap调用,则getImage函数无法访问缓存数据。

那么如何使它在函数中可见呢?

concatMap返回unobservatable,它的回调必须返回一个内部observatable

 public preloadImages(imgUrls: string[]) {
        console.log(this.cachedResources); //Everything is fine here
        return Observable.from(imgUrls).concatMap(url=> Observable.of(this.getImage(url));
    }

啊,这正是我需要的。非常感谢
public getImage(imgUrl: string) {
    console.log(this.cachedResources); //Unidentified
}
 public preloadImages(imgUrls: string[]) {
        console.log(this.cachedResources); //Everything is fine here
        return Observable.from(imgUrls).concatMap(url=> Observable.of(this.getImage(url));
    }