source: trip-planner-front/node_modules/sockjs-client/lib/info-ajax.js@ 8d391a1

Last change on this file since 8d391a1 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.0 KB
Line 
1'use strict';
2
3var EventEmitter = require('events').EventEmitter
4 , inherits = require('inherits')
5 , JSON3 = require('json3')
6 , objectUtils = require('./utils/object')
7 ;
8
9var debug = function() {};
10if (process.env.NODE_ENV !== 'production') {
11 debug = require('debug')('sockjs-client:info-ajax');
12}
13
14function InfoAjax(url, AjaxObject) {
15 EventEmitter.call(this);
16
17 var self = this;
18 var t0 = +new Date();
19 this.xo = new AjaxObject('GET', url);
20
21 this.xo.once('finish', function(status, text) {
22 var info, rtt;
23 if (status === 200) {
24 rtt = (+new Date()) - t0;
25 if (text) {
26 try {
27 info = JSON3.parse(text);
28 } catch (e) {
29 debug('bad json', text);
30 }
31 }
32
33 if (!objectUtils.isObject(info)) {
34 info = {};
35 }
36 }
37 self.emit('finish', info, rtt);
38 self.removeAllListeners();
39 });
40}
41
42inherits(InfoAjax, EventEmitter);
43
44InfoAjax.prototype.close = function() {
45 this.removeAllListeners();
46 this.xo.close();
47};
48
49module.exports = InfoAjax;
Note: See TracBrowser for help on using the repository browser.