mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Use promises in 'NetInfo'
Reviewed By: svcscm Differential Revision: D2938010 fb-gh-sync-id: 4a24ce680b37e49759f3325987b4b440eb033b94 shipit-source-id: 4a24ce680b37e49759f3325987b4b440eb033b94
This commit is contained in:
committed by
facebook-github-bot-9
parent
ecb1643fee
commit
14ec6f011e
@@ -16,6 +16,7 @@ const NativeModules = require('NativeModules');
|
||||
const Platform = require('Platform');
|
||||
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
const RCTNetInfo = NativeModules.NetInfo;
|
||||
const deprecatedCallback = require('deprecatedCallback');
|
||||
|
||||
const DEVICE_CONNECTIVITY_EVENT = 'networkStatusDidChange';
|
||||
|
||||
@@ -135,8 +136,12 @@ const _isConnectedSubscriptions = new Map();
|
||||
* monetary costs, data limitations or battery/performance issues.
|
||||
*
|
||||
* ```
|
||||
* NetInfo.isConnectionExpensive((isConnectionExpensive) => {
|
||||
* NetInfo.isConnectionExpensive()
|
||||
* .then(isConnectionExpensive => {
|
||||
* console.log('Connection is ' + (isConnectionExpensive ? 'Expensive' : 'Not Expensive'));
|
||||
* })
|
||||
* .catch(error => {
|
||||
* console.error(error);
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
@@ -146,7 +151,7 @@ const _isConnectedSubscriptions = new Map();
|
||||
* internet connectivity.
|
||||
*
|
||||
* ```
|
||||
* NetInfo.isConnected.fetch().done((isConnected) => {
|
||||
* NetInfo.isConnected.fetch().then(isConnected => {
|
||||
* console.log('First, is ' + (isConnected ? 'online' : 'offline'));
|
||||
* });
|
||||
* function handleFirstConnectivityChange(isConnected) {
|
||||
@@ -192,14 +197,7 @@ const NetInfo = {
|
||||
},
|
||||
|
||||
fetch(): Promise {
|
||||
return new Promise((resolve, reject) => {
|
||||
RCTNetInfo.getCurrentConnectivity(
|
||||
function(resp) {
|
||||
resolve(resp.network_info);
|
||||
},
|
||||
reject
|
||||
);
|
||||
});
|
||||
return RCTNetInfo.getCurrentConnectivity().then(resp => resp.network_info);
|
||||
},
|
||||
|
||||
isConnected: {
|
||||
@@ -239,15 +237,13 @@ const NetInfo = {
|
||||
},
|
||||
},
|
||||
|
||||
isConnectionExpensive(callback: (metered: ?boolean, error?: string) => void): void {
|
||||
if (Platform.OS === 'android') {
|
||||
RCTNetInfo.isConnectionMetered((_isMetered) => {
|
||||
callback(_isMetered);
|
||||
});
|
||||
} else {
|
||||
// TODO t9296080 consider polyfill and more features later on
|
||||
callback(null, "Unsupported");
|
||||
}
|
||||
isConnectionExpensive(): Promise {
|
||||
return deprecatedCallback(
|
||||
Platform.OS === 'android' ? RCTNetInfo.isConnectionMetered() : Promise.reject(new Error('Currently not supported on iOS')),
|
||||
Array.prototype.slice.call(arguments),
|
||||
'single-callback-value-first',
|
||||
'NetInfo.isConnectionMetered(callback) is deprecated. Use the returned Promise instead.'
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user