在JavaScript中处理子类回调

时间:2016-07-29 15:50:57

标签: javascript http callback subclass

我的问题比基于代码的概念更具概念性。我正在寻找使用子类处理异步程序流的最佳方法。

想象一下,您构建了一个REST服务,并将整个通信代码外包给一个名为REST的类。我想从我的数据库中读取所有类别并在我的GUI中显示它们。如果我们是同步的,我们可以写:

cats = REST.GetCategories();
UpdateMyGUI(cats);

但是因为我们是异步的,所以在UpdateMyGUI(cats)返回之前会调用REST.GetCategories()。因此,我们最终得到了一个无穷无尽的子类函数调用列表:类似

REST.GetCategories() => $http() = (WaitingforHTTPResponse) => GetResult() => AnalyseResult() => ?

我的问题:从服务器获得结果后,让程序调用{​​{1}}的最佳方法是什么?

由于UpdateMyCategories()是主程序的一部分,因此在UpdateMyCategories()类中直接调用此函数(并进行硬编码)至少是凌乱的编码。我的第一个想法是创建一个像

这样的对象
REST

并使用参数扩展var _data = { func: UpdateMyCategories, params: [] }; 类中的所有函数,以将REST对象转发到最后一个函数,在该函数中可以调用它。我也可以转发事件名称而不是函数指针。

但是没有更好的方法吗?这里真正的JavaScript方式是什么?

0 个答案:

没有答案