我的应用程序中收到了不同类型的错误。
在我的项目中,大部分功能都在ajax中。现在我的问题是,如果我“警告”我收到输出的东西。否则我不是。我完全对这个问题感到困惑,并且没有任何想法来解决它。
解决方案是什么?
任何答案都会有所帮助和感激......
提前致谢
答案 0 :(得分:1)
AJAX中的Thr A是“异步”的简写,这意味着呼叫不遵循普通的时间流程。
我的意思是,说你有这个代码
alert(1);
some_function();
alert(2);
在javascript中,您希望系统警报1,然后运行some_function()并等待它返回一些内容,并且只有在完成后,您才会看到警报2。
但是如果some_function()是ajax,你得到警报1,然后警告2,你可以在这两个警报之间以及第二个警报之后获得some_function()的结果,因为ajax调用异常, js不会等待它的反应。
考虑到这一点,让我们回到你的问题。
你说,除非你发出警告,否则你得不到结果。如果你发出警告,javascript会停止,直到用户点击“确定”,但是ajax不会。因此,这将产生时间延迟,并且在此时间延迟期间,ajax可能完成运行并返回结果。
你的错误是,我只是猜测,因为你没有提供任何代码,你连续运行两个ajax调用,后者依赖于前者。
var x = some_ajax_function();
var y = some_other_function(x);
这不会工作(可能),因为在分配x的值之前调用第二个函数。但是如果你在它们之间放置一个警报,你会得到结果,因为ajax调用会返回一个结果并在时间延迟中分配x。
所以,你需要的是,你可以重新设计你的逻辑,或者你可以在第一个ajax调用的成功阶段调用第二个函数。
像
这样的东西function some_ajax_function()
{
....
//ajax success state
var x = ajax_result;
some_other_function(x);
}
我希望这会有所帮助