gpt4 book ai didi

dojo - Xpages Dojo xhrGET 链接不同 xhrGET 的加载函数

转载 作者:行者123 更新时间:2023-12-05 00:56:48 24 4
gpt4 key购买 nike

我有一个有趣的情况。我正在创建一个增强型数据网格(大约有 24000 个条目)。所以我计划加载一个小子集以在另一个请求完成时向用户显示一些数据。你可以在下面的代码中看到我想做什么。现在的问题是,“加载”中的这两个函数都将更新网格数据存储。我想确保仅在 createDataStore() 完成后调用来自第二个 xhrGet 的 updateDataStore()。这是必需的,因为我正在为数据存储中的行动态创建 ID。我不想在第一个 xhrGET 完成之前保留第二个 xhrGET 请求。

** 更新商店的代码**

var ds = dijit.byId("grid").store;ds.newItem();

创建网格并发出两个 xhrGET 请求的代码

CreateEmptyGrid();

dojo.require("dojo._base.xhr");

dojo.xhrGet({
url:"url1",
handleAs:"json",
load: function(data){createDataStore(data);
}
});
dojo.xhrGet(
{
url:"url2",
handleAs:"json",
load: function(data){updateDataStore(data);}
});

最佳答案

这里有一个 DeferredList 的例子

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

<xp:scriptBlock id="scriptBlockPromises">
<xp:this.value><![CDATA[
require(["dojo/request", "dojo/DeferredList"], function(request, DeferredList) {
var responses = new Array();

var promise1 = request("/path/to/data/1").then(function(response) {
createDataStore(response);
});

var promise2 = request("/path/to/data/2").then(function(response) {
responses[0] = response;
});

var list = new DeferredList([promise1, promise2]);
list.then(function(result) {
updateDataStore(responses[0]);
});
});]]></xp:this.value>
</xp:scriptBlock>

</xp:view>

关于dojo - Xpages Dojo xhrGET 链接不同 xhrGET 的加载函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27944223/

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