gpt4 book ai didi

javascript - Jquery 管道传输多个结果

转载 作者:行者123 更新时间:2023-11-28 02:42:45 24 4
gpt4 key购买 nike

我有三种方法loadMetaloadDatarenderList

loadMeta 将其结果通过管道传输到 loadData。 LoadData 使用元来获取其结果;

然后我需要从 loadMetaloadData 获取结果并将它们传递给 renderList。但我不知道如何获取两组结果,我只是得到了 loadData 的结果。

这(基本上)是我想做的:

$.when(loadMeta().pipe(loadData)).then(function(){ renderList(metaResult, dataResult); } );

是否可以内联执行,或者我是否需要分解语句?

最佳答案

如果您的 loadData 函数返回两个结果,那将是最简单的。

让结果成为包含两个结果的对象的简单函数需要额外的 then (pipe):

loadMeta().then(function(metaResult) {
return loadData(metaResult).then(function(dataResult) {
return {meta:metaResult, data:dataResult};
});
}).done(function(result) {
renderList(result.meta, result.data);
});

或者,您将它们合并到一个解析回调中,并使用 renderList 的正确签名:

loadMeta().then(function(metaResult) {
return loadData(metaResult).then(function(dataResult) {
return new $.Deferred().resolve(metaResult, dataResult);
});
}).done(renderList);

或者,正如您所建议的,我们可能会中断该语句并添加一个额外的回调来缓存 metaResult:

var metaResult;
loadMeta().done(function(result) {
metaResult = result;
}).then(loadData).done(function(dataResult) {
renderList(metaResult, dataResult);
});

这可能是最容易理解的。

关于javascript - Jquery 管道传输多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424051/

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