我问的东西也许太奇怪了,但我不确定
我正在尝试使用OOP在Typescript中使.done()函数
我的代码如下:
private loadTiledmap():void
{
.... //loadTiledmap is called when all resources are loaded
this.done; // Trigger the callback
}
public done(callback: () => void ): void
{
callback();
}
另一个代码正在加载地形,现在我有要运行此回调的函数。
IEnumerable<string> sortedNames =
PersonsList
.Select(id => PersonsDictionary[id].FullName) // Select the name for each entry
.OrderBy(n => n, StringComparer.OrdinalIgnoreCase); // Order the names (case insenstive)
foreach(string name in sortedNames) // Materialize the ordered names
{
Console.Write(name); // print
}
this.done和terrain.done(()都将调用回调,但是我不知道如何在代码中的其他地方触发terrain.done(()。谢谢您的所有帮助和提示
答案 0 :(得分:0)
听起来您想done(callback)
注册该回调,然后想loadTiledmap
在完成回调后调用该回调?
在这种情况下,您只需要将函数保存在类实例上,然后运行该回调即可。
class MyClass {
private doneCallback: (() => void) | undefined
// Save the callback function
public done(callback: () => void ): void
{
this.doneCallback = callback;
}
private loadTiledmap():void
{
// ... loadTiledmap is called when all resources are loaded
this.doneCallback?.(); // Trigger the callback
}
}