@cloudcare/browser-core 3.1.22 → 3.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/browser/runOnReadyState.js +5 -1
- package/cjs/browser/runOnReadyState.js.map +1 -1
- package/cjs/helper/observable.js +1 -1
- package/cjs/helper/observable.js.map +1 -1
- package/esm/browser/runOnReadyState.js +5 -1
- package/esm/browser/runOnReadyState.js.map +1 -1
- package/esm/helper/observable.js +1 -1
- package/esm/helper/observable.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/runOnReadyState.js +3 -1
- package/src/helper/observable.js +1 -1
|
@@ -6,12 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.runOnReadyState = runOnReadyState;
|
|
7
7
|
var _addEventListener = require("./addEventListener");
|
|
8
8
|
var _enums = require("../helper/enums");
|
|
9
|
+
var _tools = require("../helper/tools");
|
|
9
10
|
function runOnReadyState(expectedReadyState, callback) {
|
|
10
11
|
if (document.readyState === expectedReadyState || document.readyState === 'complete') {
|
|
11
12
|
callback();
|
|
13
|
+
return {
|
|
14
|
+
stop: _tools.noop
|
|
15
|
+
};
|
|
12
16
|
} else {
|
|
13
17
|
var eventName = expectedReadyState === 'complete' ? _enums.DOM_EVENT.LOAD : _enums.DOM_EVENT.DOM_CONTENT_LOADED;
|
|
14
|
-
(0, _addEventListener.addEventListener)(window, eventName, callback, {
|
|
18
|
+
return (0, _addEventListener.addEventListener)(window, eventName, callback, {
|
|
15
19
|
once: true
|
|
16
20
|
});
|
|
17
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOnReadyState.js","names":["_addEventListener","require","_enums","runOnReadyState","expectedReadyState","callback","document","readyState","eventName","DOM_EVENT","LOAD","DOM_CONTENT_LOADED","addEventListener","window","once"],"sources":["../../src/browser/runOnReadyState.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nexport function runOnReadyState(expectedReadyState, callback) {\n if (\n document.readyState === expectedReadyState ||\n document.readyState === 'complete'\n ) {\n callback()\n } else {\n var eventName =\n expectedReadyState === 'complete'\n ? DOM_EVENT.LOAD\n : DOM_EVENT.DOM_CONTENT_LOADED\n addEventListener(window, eventName, callback, { once: true })\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACO,
|
|
1
|
+
{"version":3,"file":"runOnReadyState.js","names":["_addEventListener","require","_enums","_tools","runOnReadyState","expectedReadyState","callback","document","readyState","stop","noop","eventName","DOM_EVENT","LOAD","DOM_CONTENT_LOADED","addEventListener","window","once"],"sources":["../../src/browser/runOnReadyState.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { noop } from '../helper/tools'\nexport function runOnReadyState(expectedReadyState, callback) {\n if (\n document.readyState === expectedReadyState ||\n document.readyState === 'complete'\n ) {\n callback()\n return { stop: noop }\n } else {\n var eventName =\n expectedReadyState === 'complete'\n ? DOM_EVENT.LOAD\n : DOM_EVENT.DOM_CONTENT_LOADED\n return addEventListener(window, eventName, callback, { once: true })\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACO,SAASG,eAAeA,CAACC,kBAAkB,EAAEC,QAAQ,EAAE;EAC5D,IACEC,QAAQ,CAACC,UAAU,KAAKH,kBAAkB,IAC1CE,QAAQ,CAACC,UAAU,KAAK,UAAU,EAClC;IACAF,QAAQ,CAAC,CAAC;IACV,OAAO;MAAEG,IAAI,EAAEC;IAAK,CAAC;EACvB,CAAC,MAAM;IACL,IAAIC,SAAS,GACXN,kBAAkB,KAAK,UAAU,GAC7BO,gBAAS,CAACC,IAAI,GACdD,gBAAS,CAACE,kBAAkB;IAClC,OAAO,IAAAC,kCAAgB,EAACC,MAAM,EAAEL,SAAS,EAAEL,QAAQ,EAAE;MAAEW,IAAI,EAAE;IAAK,CAAC,CAAC;EACtE;AACF","ignoreList":[]}
|
package/cjs/helper/observable.js
CHANGED
|
@@ -14,7 +14,7 @@ var _Observable = function _Observable(onFirstSubscribe) {
|
|
|
14
14
|
_Observable.prototype = {
|
|
15
15
|
subscribe: function subscribe(f) {
|
|
16
16
|
this.observers.push(f);
|
|
17
|
-
if (
|
|
17
|
+
if (this.observers.length === 1 && this.onFirstSubscribe) {
|
|
18
18
|
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;
|
|
19
19
|
}
|
|
20
20
|
var _this = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (
|
|
1
|
+
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,SAAAA,UAAUC,CAAC,EAAE;IACtB,IAAI,CAACL,SAAS,CAACM,IAAI,CAACD,CAAC,CAAC;IACtB,IAAI,IAAI,CAACL,SAAS,CAACO,MAAM,KAAK,CAAC,IAAI,IAAI,CAACR,gBAAgB,EAAE;MACxD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACF,gBAAgB,CAAC,IAAI,CAAC,IAAIG,SAAS;IACnE;IACA,IAAIM,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAAA,YAAA,EAAY;QACvBD,KAAK,CAACR,SAAS,GAAG,IAAAU,aAAM,EAACF,KAAK,CAACR,SAAS,EAAE,UAAUW,KAAK,EAAE;UACzD,OAAON,CAAC,KAAKM,KAAK;QACpB,CAAC,CAAC;QACF,IAAI,CAACH,KAAK,CAACR,SAAS,CAACO,MAAM,IAAIC,KAAK,CAACP,iBAAiB,EAAE;UACtDO,KAAK,CAACP,iBAAiB,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;EACH,CAAC;EACDW,MAAM,EAAE,SAAAA,OAAUC,IAAI,EAAE;IACtB,IAAAC,WAAI,EAAC,IAAI,CAACd,SAAS,EAAE,UAAUe,QAAQ,EAAE;MACvCA,QAAQ,CAACF,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ;AACF,CAAC;AACM,IAAIG,UAAU,GAAGlB,WAAW;AAAAmB,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAE5B,SAASE,gBAAgBA,CAAA,EAAG;EACjC,IAAIC,WAAW,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;EAC1C,OAAO,IAAIN,UAAU,CAAC,UAAUO,gBAAgB,EAAE;IAChD,IAAIC,aAAa,GAAG,IAAAC,UAAG,EAACN,WAAW,EAAE,UAAUO,UAAU,EAAE;MACzD,OAAOA,UAAU,CAACtB,SAAS,CAAC,UAAUS,IAAI,EAAE;QAC1C,OAAOU,gBAAgB,CAACX,MAAM,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAO,IAAAC,WAAI,EAACU,aAAa,EAAE,UAAUG,YAAY,EAAE;QACjD,OAAOA,YAAY,CAAClB,WAAW,CAAC,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { addEventListener } from './addEventListener';
|
|
2
2
|
import { DOM_EVENT } from '../helper/enums';
|
|
3
|
+
import { noop } from '../helper/tools';
|
|
3
4
|
export function runOnReadyState(expectedReadyState, callback) {
|
|
4
5
|
if (document.readyState === expectedReadyState || document.readyState === 'complete') {
|
|
5
6
|
callback();
|
|
7
|
+
return {
|
|
8
|
+
stop: noop
|
|
9
|
+
};
|
|
6
10
|
} else {
|
|
7
11
|
var eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED;
|
|
8
|
-
addEventListener(window, eventName, callback, {
|
|
12
|
+
return addEventListener(window, eventName, callback, {
|
|
9
13
|
once: true
|
|
10
14
|
});
|
|
11
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOnReadyState.js","names":["addEventListener","DOM_EVENT","runOnReadyState","expectedReadyState","callback","document","readyState","eventName","LOAD","DOM_CONTENT_LOADED","window","once"],"sources":["../../src/browser/runOnReadyState.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nexport function runOnReadyState(expectedReadyState, callback) {\n if (\n document.readyState === expectedReadyState ||\n document.readyState === 'complete'\n ) {\n callback()\n } else {\n var eventName =\n expectedReadyState === 'complete'\n ? DOM_EVENT.LOAD\n : DOM_EVENT.DOM_CONTENT_LOADED\n addEventListener(window, eventName, callback, { once: true })\n }\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,OAAO,SAASC,eAAeA,CAACC,kBAAkB,EAAEC,QAAQ,EAAE;EAC5D,IACEC,QAAQ,CAACC,UAAU,KAAKH,kBAAkB,IAC1CE,QAAQ,CAACC,UAAU,KAAK,UAAU,EAClC;IACAF,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runOnReadyState.js","names":["addEventListener","DOM_EVENT","noop","runOnReadyState","expectedReadyState","callback","document","readyState","stop","eventName","LOAD","DOM_CONTENT_LOADED","window","once"],"sources":["../../src/browser/runOnReadyState.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { noop } from '../helper/tools'\nexport function runOnReadyState(expectedReadyState, callback) {\n if (\n document.readyState === expectedReadyState ||\n document.readyState === 'complete'\n ) {\n callback()\n return { stop: noop }\n } else {\n var eventName =\n expectedReadyState === 'complete'\n ? DOM_EVENT.LOAD\n : DOM_EVENT.DOM_CONTENT_LOADED\n return addEventListener(window, eventName, callback, { once: true })\n }\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,SAASC,eAAeA,CAACC,kBAAkB,EAAEC,QAAQ,EAAE;EAC5D,IACEC,QAAQ,CAACC,UAAU,KAAKH,kBAAkB,IAC1CE,QAAQ,CAACC,UAAU,KAAK,UAAU,EAClC;IACAF,QAAQ,CAAC,CAAC;IACV,OAAO;MAAEG,IAAI,EAAEN;IAAK,CAAC;EACvB,CAAC,MAAM;IACL,IAAIO,SAAS,GACXL,kBAAkB,KAAK,UAAU,GAC7BH,SAAS,CAACS,IAAI,GACdT,SAAS,CAACU,kBAAkB;IAClC,OAAOX,gBAAgB,CAACY,MAAM,EAAEH,SAAS,EAAEJ,QAAQ,EAAE;MAAEQ,IAAI,EAAE;IAAK,CAAC,CAAC;EACtE;AACF","ignoreList":[]}
|
package/esm/helper/observable.js
CHANGED
|
@@ -7,7 +7,7 @@ var _Observable = function _Observable(onFirstSubscribe) {
|
|
|
7
7
|
_Observable.prototype = {
|
|
8
8
|
subscribe: function subscribe(f) {
|
|
9
9
|
this.observers.push(f);
|
|
10
|
-
if (
|
|
10
|
+
if (this.observers.length === 1 && this.onFirstSubscribe) {
|
|
11
11
|
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;
|
|
12
12
|
}
|
|
13
13
|
var _this = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","names":["each","filter","map","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","other","notify","data","observer","Observable","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (
|
|
1
|
+
{"version":3,"file":"observable.js","names":["each","filter","map","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","push","length","_this","unsubscribe","other","notify","data","observer","Observable","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n this.observers.push(f)\n if (this.observers.length === 1 && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,MAAM,EAAEC,GAAG,QAAQ,SAAS;AAC3C,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,SAAAA,UAAUC,CAAC,EAAE;IACtB,IAAI,CAACL,SAAS,CAACM,IAAI,CAACD,CAAC,CAAC;IACtB,IAAI,IAAI,CAACL,SAAS,CAACO,MAAM,KAAK,CAAC,IAAI,IAAI,CAACR,gBAAgB,EAAE;MACxD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACF,gBAAgB,CAAC,IAAI,CAAC,IAAIG,SAAS;IACnE;IACA,IAAIM,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAAA,YAAA,EAAY;QACvBD,KAAK,CAACR,SAAS,GAAGJ,MAAM,CAACY,KAAK,CAACR,SAAS,EAAE,UAAUU,KAAK,EAAE;UACzD,OAAOL,CAAC,KAAKK,KAAK;QACpB,CAAC,CAAC;QACF,IAAI,CAACF,KAAK,CAACR,SAAS,CAACO,MAAM,IAAIC,KAAK,CAACP,iBAAiB,EAAE;UACtDO,KAAK,CAACP,iBAAiB,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;EACH,CAAC;EACDU,MAAM,EAAE,SAAAA,OAAUC,IAAI,EAAE;IACtBjB,IAAI,CAAC,IAAI,CAACK,SAAS,EAAE,UAAUa,QAAQ,EAAE;MACvCA,QAAQ,CAACD,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ;AACF,CAAC;AACD,OAAO,IAAIE,UAAU,GAAGhB,WAAW;AAEnC,OAAO,SAASiB,gBAAgBA,CAAA,EAAG;EACjC,IAAIC,WAAW,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;EAC1C,OAAO,IAAIL,UAAU,CAAC,UAAUM,gBAAgB,EAAE;IAChD,IAAIC,aAAa,GAAGxB,GAAG,CAACmB,WAAW,EAAE,UAAUM,UAAU,EAAE;MACzD,OAAOA,UAAU,CAAClB,SAAS,CAAC,UAAUQ,IAAI,EAAE;QAC1C,OAAOQ,gBAAgB,CAACT,MAAM,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAOjB,IAAI,CAAC0B,aAAa,EAAE,UAAUE,YAAY,EAAE;QACjD,OAAOA,YAAY,CAACd,WAAW,CAAC,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcare/browser-core",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.24",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"author": "dataflux",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"description": "DataFlux RUM Web 端数据指标监控",
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "dbe15a5e4b88ca3316b9a5c5e704023ffd5f374d"
|
|
26
26
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { addEventListener } from './addEventListener'
|
|
2
2
|
import { DOM_EVENT } from '../helper/enums'
|
|
3
|
+
import { noop } from '../helper/tools'
|
|
3
4
|
export function runOnReadyState(expectedReadyState, callback) {
|
|
4
5
|
if (
|
|
5
6
|
document.readyState === expectedReadyState ||
|
|
6
7
|
document.readyState === 'complete'
|
|
7
8
|
) {
|
|
8
9
|
callback()
|
|
10
|
+
return { stop: noop }
|
|
9
11
|
} else {
|
|
10
12
|
var eventName =
|
|
11
13
|
expectedReadyState === 'complete'
|
|
12
14
|
? DOM_EVENT.LOAD
|
|
13
15
|
: DOM_EVENT.DOM_CONTENT_LOADED
|
|
14
|
-
addEventListener(window, eventName, callback, { once: true })
|
|
16
|
+
return addEventListener(window, eventName, callback, { once: true })
|
|
15
17
|
}
|
|
16
18
|
}
|
package/src/helper/observable.js
CHANGED
|
@@ -7,7 +7,7 @@ var _Observable = function (onFirstSubscribe) {
|
|
|
7
7
|
_Observable.prototype = {
|
|
8
8
|
subscribe: function (f) {
|
|
9
9
|
this.observers.push(f)
|
|
10
|
-
if (
|
|
10
|
+
if (this.observers.length === 1 && this.onFirstSubscribe) {
|
|
11
11
|
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined
|
|
12
12
|
}
|
|
13
13
|
var _this = this
|