@@ -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 = ( nativeEvent ) => {
127
+ ImageUriCache . add ( uri ) ;
126
128
// avoid blocking the main thread
127
129
const onDecode = ( ) => {
128
130
// Append `source` to match RN's ImageLoadEvent interface
@@ -185,9 +187,8 @@ const ImageLoader = {
185
187
ImageLoader . load (
186
188
uri ,
187
189
( ) => {
188
- // Add the uri to the cache so it can be immediately displayed when used
189
- // but also immediately remove it to correctly reflect that it has no active references
190
- ImageUriCache . add ( uri ) ;
190
+ // load() adds the uri to the cache so it can be immediately displayed when used,
191
+ // but we also immediately remove it to correctly reflect that it has no active references
191
192
ImageUriCache . remove ( uri ) ;
192
193
resolve ( ) ;
193
194
} ,
0 commit comments