gpt4 book ai didi

javascript - 仅当一系列 XHR (IO) 请求成功时,调用 YUI3 中函数的最佳方法是什么?

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

我想这个问题不仅针对 YUI,而且是我正在使用的 JS 库,具体的答案会很有帮助。

基本上,在加载页面时,我希望脚本使用 Y.io 运行一些 XHR,如果它们都成功返回数据,那么我希望脚本继续下一步,这将操作接收到的数据.

我可以想到几种方法来做到这一点,但它们对我来说似乎都有点笨拙,我希望有人有更好的建议。到目前为止我的想法:

  1. 将我想要的所有数据合并到一个 JSON 响应中,因此,如果该请求良好,则继续。 (这是我最不喜欢的解决方案)。
  2. 当第一个 Y.io 请求成功返回时,调用下一个,依此类推,当最后一个请求成功时,我就知道一切都成功了,并继续执行脚本的下一步。

还有更好的想法吗?目前我不太喜欢我的任何一个,但我倾向于第二个选项。

最佳答案

您不需要对 Y.io 调用进行排队。只需一次性发送所有内容,当他们全部返回时,即可继续。

var data = {};

function step(id, o, part) {
try {
data[part] = Y.Lang.JSON.parse(o.responseText);

if (data.a && data.b && data.c) {
processData(data);
}
}
catch (e) {
/* handle bad JSON, failure case */
}
}

Y.io(a_url, { on: { success: step }, 'arguments': 'a' });
Y.io(b_url, { on: { success: step }, 'arguments': 'b' });
Y.io(c_url, { on: { success: step }, 'arguments': 'c' });

关于javascript - 仅当一系列 XHR (IO) 请求成功时,调用 YUI3 中函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1854683/

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