我是反应式编程的新手,在创建AJAX导航侧导航时遇到了问题。
String myData = request.getParameter("tableData");
当我点击change_password或update_profile时,会发出一个ajax请求但是change_password的请求被延迟,因此当单击它并单击update_profile时,会显示update_profile表单,但在完成后会被change_password表单替换。
如果点击另一个列表项,我将如何取消第一个AJAX请求?
答案 0 :(得分:6)
当生成新的发射时,您可以使用switchMap
取消订阅上一个流(您的Ajax调用)。
有人说;因为您使用promise Ajax版本无法取消该请求。因此,即使switchMap提供取消挂钩(unsubscribe
),承诺也不会对此采取行动。
您可以将Rx.Observable.ajax
用于Observable版本。在您完成之前取消订阅时,可以中止此调用。 AFAIK它依赖于DOM,因此在nodejs环境中,您可以使用universal Ajax npm package在非DOM环境中运行时从npm替换内部xhr
和xhr2
。