magic-oopjs
Version:
新增了 多线程的异常日志输出
345 lines (313 loc) • 12.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper"));
var _main = require("./main");
var _dec, _dec2, _class, _descriptor, _descriptor2, _temp, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class3, _class4, _descriptor3, _descriptor4, _temp2;
var Base = (_dec = (0, _main.Schema)({
username: _main.Joi.string().min(3).max(30).required()
}), _dec2 = (0, _main.Schema)(_main.Joi.string().min(3)), (_class = (_temp =
/*#__PURE__*/
function () {
function Base() {
(0, _classCallCheck2["default"])(this, Base);
(0, _initializerDefineProperty2["default"])(this, "userInfo", _descriptor, this);
(0, _initializerDefineProperty2["default"])(this, "name", _descriptor2, this);
}
(0, _createClass2["default"])(Base, [{
key: "main",
value: function main() {
return _regenerator["default"].async(function main$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
console.log("父类统一的main方法"); //this.setter(this.userInfo,12) ;
//this.userInfo = 12;
this.setter.userInfo = {
username: "1D2"
}; // console.log(this.userInfo)
return _context.abrupt("return", 1000);
case 3:
case "end":
return _context.stop();
}
}
}, null, this);
} // 父类的被继承的方法
// @Abstract
// @Public
// @Params({
// username: Joi.string().min(3).max(30).required(),
// })
// @Returns({ username: Joi.string().min(3).max(30).required(), })
// async cc() {
// }
}, {
key: "run",
value: function run() {
console.log("父类的run");
}
}, {
key: "getName",
value: function getName() {
return "父类的方法 getName";
}
}]);
return Base;
}(), _temp), (_descriptor = (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "userInfo", [_main.Public, _main.Final, _dec], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "main", [_main.Public, _main.Final], Object.getOwnPropertyDescriptor(_class.prototype, "main"), _class.prototype), (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "run", [_main.Protected], Object.getOwnPropertyDescriptor(_class.prototype, "run"), _class.prototype), (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "getName", [_main.Public], Object.getOwnPropertyDescriptor(_class.prototype, "getName"), _class.prototype), _descriptor2 = (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "name", [_main.Public, _dec2], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return "";
}
})), _class));
var Cat = (_dec3 = (0, _main.Extends)(Base), _dec4 = (0, _main.Returns)([{
username: _main.Joi.string().min(3).max(30).required()
}, _main.Any]), _dec5 = (0, _main.Schema)(_main.Joi.object({
name: _main.Joi.string().max(5).required(),
list: _main.Joi.array().items({
age: _main.Joi.number().min(5).required()
}).required()
})), _dec6 = (0, _main.Thread)({
logging: true,
logger: "onThreadLog"
}), _dec7 = (0, _main.Params)(_main.Any, _main.Joi.number().required().min(5)), _dec8 = (0, _main.Returns)([_main.Joi.number().required()]), _dec3(_class3 = (_class4 = (_temp2 =
/*#__PURE__*/
function () {
function Cat() {
(0, _classCallCheck2["default"])(this, Cat);
(0, _initializerDefineProperty2["default"])(this, "age", _descriptor3, this);
(0, _initializerDefineProperty2["default"])(this, "dataList", _descriptor4, this);
}
(0, _createClass2["default"])(Cat, [{
key: "run",
//@Params({ username: Joi.string().min(3).max(30).required() })
// Cat() {
// this.super.constructor({ username: "jsjsjsj" });
// console.log("执行构造方法");
// //return "jajaj"
// }
value: function run() {
this["super"].run(); //console.log("
// 子类的run");
}
}, {
key: "cc",
value: function cc(params) {
return _regenerator["default"].async(function cc$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", [{
username: "123"
}, {
username: "00"
}]);
case 1:
case "end":
return _context2.stop();
}
}
});
} //@Protected
//@Readonly
//name = "";
//@Validate()
}, {
key: "schemeCheck",
value: function schemeCheck() {
var obj;
return _regenerator["default"].async(function schemeCheck$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
// this.setter.dataList = {
// name: "122",
// list: [{ age: 10 }]
// }
// return {
// name: "122",
// list: [{ age: 10 }]
// }
this.setter.dataList = {
name: "0",
list: [{
age: 5
}]
};
console.log("schemeCheck");
obj = {
name: 'rajan',
age: 39
};
this.getter.schameSimple(obj, 30);
case 4:
case "end":
return _context3.stop();
}
}
}, null, this);
}
}, {
key: "schameSimple",
value: function schameSimple(data, age) {
// let sleep = function (delay) {
// var p = new Promise(function (resolve, reject) { //做一些异步操作
// setTimeout(function () {
// resolve();
// }, delay);
// });
// return p;
// }
// await sleep(4000)
//console.log("simpleScham @@@@ ", data.name,data.Joi, age);
var t1 = new Date().getTime();
var i = 0;
while (i < 6000000) {
i++;
}
var t2 = new Date().getTime(); //console.log(`单线程耗时 -- ${(t2 - t1)/1000}`)
//const http = require("http");
//console.log(http);
//let user = JSON.parse(data);
//console.log("simpleSchame",data.dataview.getUint8(0),data.dataview.name);
//this.setter.name = "01111"
//data.dataview.setUint8(0,2000)
//return [data.dataview.getUint8(0) + 200]
//logger("rajan");
throw new Error("测试异常");
return [100];
}
}, {
key: "onThreadLog",
value: function onThreadLog(info) {
console.log("多线程日志接受", info);
}
}]);
return Cat;
}(), _temp2), ((0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "run", [_main.Public], Object.getOwnPropertyDescriptor(_class4.prototype, "run"), _class4.prototype), (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "cc", [_main.Public, _dec4], Object.getOwnPropertyDescriptor(_class4.prototype, "cc"), _class4.prototype), _descriptor3 = (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "age", [_main.Public], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return 12;
}
}), _descriptor4 = (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "dataList", [_dec5], {
configurable: true,
enumerable: true,
writable: true,
initializer: function initializer() {
return null;
}
}), (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "schemeCheck", [_main.Public], Object.getOwnPropertyDescriptor(_class4.prototype, "schemeCheck"), _class4.prototype), (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "schameSimple", [_dec6, _dec7, _dec8, _main.Private], Object.getOwnPropertyDescriptor(_class4.prototype, "schameSimple"), _class4.prototype), (0, _applyDecoratedDescriptor2["default"])(_class4.prototype, "onThreadLog", [_main.Private], Object.getOwnPropertyDescriptor(_class4.prototype, "onThreadLog"), _class4.prototype)), _class4)) || _class3); //console.log(c['cc'],'ccccccc');
//cat.dataList = ()=>{}
// let string = cat.getName({ name: 1 });
//string = cat.getAge({name:1});
//cat.name = "";
//cat.getName = ()=>{}
//console.log(cat.name);
// console.log("子类的a",cat.a);
// console.log("父类的a",cat.getA());
//cat.cc();
//cat.call("getName",{})
// console.log("结果是",string);
// cat.main()
//console.log(cat.main);
(function _callee() {
var SharedPoint, cat, obj, t1, t2;
return _regenerator["default"].async(function _callee$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
try {
SharedPoint =
/*#__PURE__*/
function () {
function SharedPoint(array) {
(0, _classCallCheck2["default"])(this, SharedPoint);
this.dataview = new DataView(array);
this.dataview.name = "rajan";
}
(0, _createClass2["default"])(SharedPoint, [{
key: "getx",
value: function getx() {
return this.dataview.getUint8(0);
}
}, {
key: "x",
set: function set(value) {
this.dataview.setUint8(0, value);
},
get: function get() {
return this.dataview.getUint8(0);
}
}, {
key: "y",
set: function set(value) {
this.dataview.setUint8(1, value);
},
get: function get() {
return this.dataview.getUint8(1);
}
}]);
return SharedPoint;
}(); // const buffer = new SharedArrayBuffer(2);
// // Create two instances of shared point.
// const point0 = new SharedPoint(buffer);
// const point1 = new SharedPoint(buffer);
// point0.x = 100
cat = (0, _main.Factory)(Cat, {
username: "112"
}); // cat.dataList = {
// name: "0",
// list: [{ age: 10 }]
// }
// cat.schemeCheck()
obj = {
name: 'rajan',
age: 39
}; //let cc = await cat.schameSimple(obj, 20);
t1 = new Date().getTime(); // let res = await Promise.all([cat.schameSimple(obj, 30),cat.schameSimple(obj, 20),cat.schameSimple(obj, 10)])
t2 = new Date().getTime();
cat.schemeCheck.call({
onLog: function onLog(info) {
console.log("多线程日志接受", info);
}
});
console.log("接收到多线程的运行结果,运行时间" + (t2 - t1) / 1000);
} catch (err) {
console.log(err);
} //await cat.cc([{ username: "1111" }]);
// let c = new Cat()
//cat.c = ()=>{}
// let resulr = await cat.main({ username: "ccc" });
// cat.userInfo = {username:"52d"};
// console.log(cat.userInfo)
// cat.getcc = ()=>{
// }
//console.log("外部读取的结果", resulr);
// let schame = Joi.object().keys({
// a: Joi.string().required().max(3),
// result: Joi.array().items({ name: Joi.string().required().min(3), age: Joi.number().min(10).max(60).required() }).required()
// });
// const { error } = schame.validate({ a: "21", result: [{ name: "1", age: 18 }] })
//console.log(error)
case 1:
case "end":
return _context4.stop();
}
}
});
})();