问题标签 [framejs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Typescript - 使用 Frame.js 的同步 ajax 调用(解决方案:JQueryDeferred)
这个问题与打字稿并不完全相关,但如果没有上下文,就不清楚为什么我什至需要这种行为。应该相对直接地了解您是否了解 Typescript。
我在 Typescript 中有一个对话框类实现,看起来像这样(仅显示相关的方法和字段):
我正在返回this
,以便可以按如下方式链接对 Show() 的调用AjaxLoadContent()
:HtmlLoadContent()
我发现这种链接语法非常干净且合乎逻辑,因此我想坚持使用它,但是,在 ajax 场景中,Show()
在 ajax 完成之前被调用,load()
因此对话框打开,然后在内容出现之前会有延迟。我无法提供回调,load()
因为我想显式链接Show()
到调用而不是在内部调用它......因此,我需要某种同步机制。
我现在正在研究 Frame.js 来完成这种“同步”风格,而不用像$.ajaxSetup({async: false;})
. 这是我希望能起作用的答案:https ://stackoverflow.com/a/10365952
但是,以下代码仍然存在延迟:
然而,这似乎不起作用,因为尽管我已经定义了明确的控制流,但断点 2 首先被击中。Show()
调用之后立即发生(因此return this
加载一个空白对话框),然后最终that.jQueryDialog.html(response)
从第二个 Frame 调用,在对话框已经显示后加载内容(因此仍然存在延迟)。
我怎样才能完成这种同步行为?