@@ -74,12 +74,13 @@ let id = 0;
74
74
const requests = { } ;
75
75
76
76
const ImageLoader = {
77
- abort ( requestId : number ) {
78
- let image = requests [ `${ requestId } ` ] ;
77
+ clear ( requestId : number ) {
78
+ const image = requests [ `${ requestId } ` ] ;
79
79
if ( image ) {
80
80
image . onerror = null ;
81
81
image . onload = null ;
82
- image = null ;
82
+ ImageUriCache . remove ( image . src ) ;
83
+ image . src = '' ;
83
84
delete requests [ `${ requestId } ` ] ;
84
85
}
85
86
} ,
@@ -102,7 +103,7 @@ const ImageLoader = {
102
103
}
103
104
}
104
105
if ( complete ) {
105
- ImageLoader . abort ( requestId ) ;
106
+ ImageLoader . clear ( requestId ) ;
106
107
clearInterval ( interval ) ;
107
108
}
108
109
}
@@ -111,7 +112,7 @@ const ImageLoader = {
111
112
if ( typeof failure === 'function' ) {
112
113
failure ( ) ;
113
114
}
114
- ImageLoader . abort ( requestId ) ;
115
+ ImageLoader . clear ( requestId ) ;
115
116
clearInterval ( interval ) ;
116
117
}
117
118
} ,
@@ -123,6 +124,7 @@ const ImageLoader = {
123
124
const image = new window . Image ( ) ;
124
125
image . onerror = onError ;
125
126
image . onload = ( e ) => {
127
+ ImageUriCache . add ( uri ) ;
126
128
// avoid blocking the main thread
127
129
const onDecode = ( ) => onLoad ( { nativeEvent : e } ) ;
128
130
if ( typeof image . decode === 'function' ) {
@@ -140,17 +142,7 @@ const ImageLoader = {
140
142
} ,
141
143
prefetch ( uri : string ) : Promise < void > {
142
144
return new Promise ( ( resolve , reject ) => {
143
- ImageLoader . load (
144
- uri ,
145
- ( ) => {
146
- // Add the uri to the cache so it can be immediately displayed when used
147
- // but also immediately remove it to correctly reflect that it has no active references
148
- ImageUriCache . add ( uri ) ;
149
- ImageUriCache . remove ( uri ) ;
150
- resolve ( ) ;
151
- } ,
152
- reject
153
- ) ;
145
+ ImageLoader . load ( uri , resolve , reject ) ;
154
146
} ) ;
155
147
} ,
156
148
queryCache ( uris : Array < string > ) : Promise < { | [ uri : string ] : 'disk/memory' | } > {
0 commit comments