Browse Source

Change DeviceEvent usage.

Ben Hsieh 8 years ago
parent
commit
13bb6f0171

+ 1
- 1
src/android/src/main/java/com/RNFetchBlob/RNFetchBlobHandler.java View File

41
 
41
 
42
         // emit event to js context
42
         // emit event to js context
43
         this.mCtx.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
43
         this.mCtx.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
44
-                 .emit("RNFetchBlobProgress" + this.mTaskId, args);
44
+                 .emit("RNFetchBlobProgress", args);
45
     }
45
     }
46
 
46
 
47
     @Override
47
     @Override

+ 3
- 6
src/index.js View File

27
 
27
 
28
     let [method, url, headers, body] = [...args]
28
     let [method, url, headers, body] = [...args]
29
     let nativeMethodName = Array.isArray(body) ? 'fetchBlobForm' : 'fetchBlob'
29
     let nativeMethodName = Array.isArray(body) ? 'fetchBlobForm' : 'fetchBlob'
30
-
31
-    let progressEventHandler = (e) => {
30
+    let handle = DeviceEventEmitter.addListener('RNFetchBlobProgress', (e) => {
32
       if(e.taskId === taskId && promise.onProgress) {
31
       if(e.taskId === taskId && promise.onProgress) {
33
         promise.onProgress(e.written, e.total)
32
         promise.onProgress(e.written, e.total)
34
       }
33
       }
35
-    }
36
-
37
-    DeviceEventEmitter.addListener('RNFetchBlobProgress' + taskId, progressEventHandler)
34
+    })
38
 
35
 
39
     RNFetchBlob[nativeMethodName](taskId, method, url, headers || {}, body, (err, ...data) => {
36
     RNFetchBlob[nativeMethodName](taskId, method, url, headers || {}, body, (err, ...data) => {
40
 
37
 
41
       // task done, remove event listener
38
       // task done, remove event listener
42
-      DeviceEventEmitter.removeAllListeners('RNFetchBlobProgress'+taskId)
39
+      handle.remove()
43
 
40
 
44
       if(err)
41
       if(err)
45
         reject(new Error(err, ...data))
42
         reject(new Error(err, ...data))