mirror of
https://github.com/status-im/react-native.git
synced 2025-03-03 19:00:37 +00:00
Summary: Send part of the response body every 100 ms if the client has set onreadystatechange. This is done by using the same events as the iOS code and removing the callback that Android previously used. Reconsolidate iOS and Android implementations. Closes #3772 public Reviewed By: mkonicek Differential Revision: D2647005 fb-gh-sync-id: d006e566867fa47d5f8dff71219cb390bcb8e15a
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
* @providesModule XMLHttpRequest
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
var FormData = require('FormData');
|
|
var RCTNetworking = require('RCTNetworking');
|
|
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
|
|
|
var XMLHttpRequestBase = require('XMLHttpRequestBase');
|
|
|
|
class XMLHttpRequest extends XMLHttpRequestBase {
|
|
constructor() {
|
|
super();
|
|
// iOS supports upload
|
|
this.upload = {};
|
|
}
|
|
|
|
sendImpl(method: ?string, url: ?string, headers: Object, data: any): void {
|
|
if (typeof data === 'string') {
|
|
data = {string: data};
|
|
} else if (data instanceof FormData) {
|
|
data = {formData: data.getParts()};
|
|
}
|
|
RCTNetworking.sendRequest(
|
|
{
|
|
method,
|
|
url,
|
|
data,
|
|
headers,
|
|
incrementalUpdates: this.onreadystatechange ? true : false,
|
|
},
|
|
this.didCreateRequest.bind(this)
|
|
);
|
|
}
|
|
}
|
|
|
|
module.exports = XMLHttpRequest;
|