Jea*_*esi 5 javascript ecmascript-next
我怎样才能实现一个装饰器,使一个类的所有方法都可以自动链接?
我有以下课程:
class MyClass {
async foo() { console.log(1); }
async bar() { console.log(2); }
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做到以下几点:
@chainableMethods
class MyClass {
...
}
const myInstance = MyClass();
myInstance
.foo()
.bar();
Run Code Online (Sandbox Code Playgroud)
var*_*wal -1
你可以试试这个
function chainableMethods (constructor) {
let funcs = Object.getOwnPropertyNames(constructor.prototype);
for (var i in funcs) {
let func = funcs[i];
let oldFunc = constructor.prototype[func];
constructor.prototype[func] = (...args) => {
let result = oldFunc.apply(this, args);
return result || constructor.prototype;
// Using 'result ||' for cases when a function does return something useful
// You can remove it if it doesn't suit your requirement.
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你打算在bar承诺foo得到解决之后才跑步,那么我认为这是不可能的。
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |