mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-09 09:30:10 +08:00
Add explicit error message if e.getMessage is null
Summary:
In the NetworkingModule, if the http request failed, we send a `didCompleteNetworkResponse` event with the error message, which is used on JS side to determine if the request was erroring. Currently we get the error message from `e.getMessage()`, however, not all exceptions have a message and it might therefore return null and thus resulting in no error on JS side. This change checks if the message is null and if so uses a default message.
In android send a request using XMLHttpRequest with a timeout set to a server that has a delay larger than the timeout (so we force the timeout to happen).
```
const request = new XMLHttpRequest();
request.open('GET', "http://localhost:3000/", true);
request.timeout = 1000;
request.ontimeout = () => { console.log('ontimeout'); };
request.send();
```
See the timeout callback being called correctly.
Fixes #11666
Closes https://github.com/facebook/react-native/pull/13407
Differential Revision: D4963764
Pulled By: hramos
fbshipit-source-id: 61ffcef9e0594fe9bface24fdb8bde1e6eec3990
This commit is contained in:
committed by
Facebook Github Bot
parent
971b083c6a
commit
c6614f117f
@@ -336,7 +336,10 @@ public final class NetworkingModule extends ReactContextBaseJavaModule {
|
||||
return;
|
||||
}
|
||||
removeRequest(requestId);
|
||||
ResponseUtil.onRequestError(eventEmitter, requestId, e.getMessage(), e);
|
||||
String errorMessage = e.getMessage() != null
|
||||
? e.getMessage()
|
||||
: "Error while executing request: " + e.getClass().getSimpleName();
|
||||
ResponseUtil.onRequestError(eventEmitter, requestId, errorMessage, e);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user