Explorar el Código

Change DeviceEvent usage.

Ben Hsieh hace 8 años
padre
commit
13bb6f0171

+ 1
- 1
src/android/src/main/java/com/RNFetchBlob/RNFetchBlobHandler.java Ver fichero

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

+ 3
- 6
src/index.js Ver fichero

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