gpt4 book ai didi

javascript - 为什么我不能/不应该使用 while 循环来监视异步 jQuery 操作?

转载 作者:行者123 更新时间:2023-11-30 07:05:42 25 4
gpt4 key购买 nike

我正努力全神贯注于协调异步操作。我需要一点帮助来理解:

  1. 为什么使用 while 循环等待操作完成是个坏主意而且不起作用,并且
  2. 如果有在 jQuery 函数上使用回调的可行替代方案

大多数时候,向 $.get() 这样的异步函数添加回调效果很好。然而,在某种程度上,这确实决定了我不喜欢的代码的编写方式和位置。

$(function() {

var r = AjaxResults( page );

// loop prevents further processing until GetResults() is done
while( isComplete == false )
isComplete = $('body').data('isComplete');

// reset isComplete boolean
$('body').data('isComplete', false);

// this will only continue after GetResults() has exited
paintTheTownRed();
var whateverElse = true;
});

function AjaxResults( page ) {

// do something before async operation
switch( page ){
case '1': {...} break;
...
default: break;
}

$.getJSON("/controller/page", null, function(data) {

// do something after async operation
{...}

$('body').data('isComplete', true);
return data;
});
}

最佳答案

因为它会占用我的 CPU 并极大地激怒我。

在哪里您编写代码几乎从不由异步/同步决定;函数就是函数,无论它们是匿名的和内联编写的,还是命名的并作为引用传递的。

此外, promise 和 deferred objects帮助决定在哪里/如何实现功能。

查看类似 .when (docs) 的内容了解更多详细信息和想法,但还有其他方法可以使用它们。

关于javascript - 为什么我不能/不应该使用 while 循环来监视异步 jQuery 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com