【发布时间】:2022-01-23 09:39:03
【问题描述】:
我在 TypeScript 中有一个类,它扩展了 Promise(MyClass 扩展了 Promise),我的意图是在调用 then() 时返回一个新的 MyClass 实例。
class MyClass<I extends Arcaela.Object[] = []> extends Promise<I> {
private MyClass = MyClass;
constructor(executor: I | Promise<I> | (()=>I | Promise<I>)){
super((done, failure)=>{
try {
if(typeof executor==='function')
done( executor() );
else if(executor instanceof Promise)
executor.then( done ).catch( failure );
else done( executor );
} catch(err){ failure( err ); }
});
}
then(filled: (value?: I)=> I | Promise<I>, outfilled?: ()=> any) : MyClass<I> {
return super.then(current=>{
delete current.status;
return current;
});
}
}
【问题讨论】:
-
您可以编辑问题以使其更清晰吗?看起来你正在编写一个单例,但真的不确定你想要实现什么。
-
e_i_pi 回答好...我已修复
标签: node.js typescript asynchronous promise