gpt4 book ai didi

javascript - Freebase:for 循环中的异步调用

转载 作者:行者123 更新时间:2023-11-28 02:10:15 25 4
gpt4 key购买 nike

我需要根据实体的类型对freebase进行n次查询。

例如,如果在之前的查询中获取了类型,并且我这样做:

for (var n=0;n<types.length;n++) {
subquery(types[n]);
}

function subquery (typid) {
query = [{
"schema": {
"id": typid,
... etc ... }
}]

$.getJSON(service_url + '?callback=?', params, function(response) {
'... etc...';
}
}

但在第一个 $.getJSON 响应之前,会执行第二个 for 循环。虽然我读了很多关于异步调用的信息,但我无法想象解决方案。

最佳答案

for (var n=0;n<types.length;n++) {
subquery(types[n]);
}

上面的代码将调用一个子查询,并且每个子查询调用将立即完成,因为 $.getJSON 函数不会中断工作流程。

上面的代码执行后,ajax 请求的 types.length 次几乎同时开始,并且它们总是存在竞争条件。

一种方法是使用 jquery 延迟对象,它完全解决了您所描述的条件,请阅读 Using Deferreds in jQuery 1.5 了解更多信息

关于javascript - Freebase:for 循环中的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215690/

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