Typescript->调用函数,它将在另一个函数中调用回调

时间:2020-04-24 14:42:46

标签: javascript typescript

我问的东西也许太奇怪了,但我不确定

我正在尝试使用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(()。谢谢您的所有帮助和提示

1 个答案:

答案 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
    }
}

Playground

相关问题