magic-oopjs
Version:
新增了 多线程的异常日志输出
37 lines (33 loc) • 1.61 kB
JavaScript
const {
Worker, MessageChannel, MessagePort, isMainThread, parentPort
} = require('worker_threads');
const { getDataType, objectDeepCompare } = require("./utils/function");
const { isFunction, validate, isAsyncFunction, isArray, isObject } = getDataType();
const {_inner} = require("./main")
const _inner_checkinner = _inner._inner_checkinner;
const _inner_checkinner_keywords = _inner._inner_checkinner_keywords;
function Thread(target, name, descriptor) {
_inner_checkinner(target);
if (_inner_checkinner_keywords(name)) {
errorMsg = `@Thread 修饰异常:定义方法异常,${name}者方法 为内部保留方法,不可重新定义`
throw new Error(errorMsg);
}
if (isFunction(target[name])) {
// if ((!target.$inner.PublicMethods || !target.$inner.PublicMethods.has(name)) && (!target.$inner.ProtectedMethods || !target.$inner.ProtectedMethods.has(name))) {
// errorMsg = `@Thread 修饰报错:${name}方法必须是被@Public或者@Protected修饰`
// throw new Error(errorMsg);
// }
if (!target.$inner.ThreadMethods || target.$inner.ThreadMethods.size == 0) {
target.$inner.ThreadMethods = new Set();
}
target.$inner.ThreadMethods.add(name);
//console.log("设置方法的公有访问权限", name,target.$inner.PublicMethods)
}
else {
errorMsg = `@Thread 修饰报错:${name}应该为方法,不能为属性,因为 @Thread 只能修饰方法`
throw new Error(errorMsg);
}
}
module.exports = {
Thread
}