gpt4 book ai didi

javascript - jQuery Promises 和 Deferred,困惑

转载 作者:行者123 更新时间:2023-12-02 16:58:46 25 4
gpt4 key购买 nike

我以为我终于明白了 promise ,但看来我有点偏离了。

任何人都可以让我摆脱痛苦并解释我在这里做错了什么吗:

t010 = {
myGet: 函数(url) {
var 结果 = new $.Deferred();
结果.resolve(ajaxRequest(url));
}
}

然后由我的主要方法调用,如下所示:

$.when(t010.myGet(seatId), t010.myGet(roomId)).then(function(d1, d2) {
控制台.log(d1);
}

我每次都只是控制台日志未定义。

我认为我想要实现的目标是相当明显的,我想调用 myGet 两次,当两者都完成时对结果进行一些处理。

谢谢大家!

最佳答案

您必须返回使用 $.when 的 promise

t010 = {
myGet: function(url) {
var result = new $.Deferred();
result.resolve(ajaxRequest(url));

return resolve.promise();
}
}

但这立即解决了 promise ,传回了 ajaxRequest 函数的结果,当时可能是未定义
但是,ajaxRequest看起来已经返回了一个promise,您可以直接返回它

t010 = {
myGet: function(url) {
return ajaxRequest(url));
}
}

假设你的ajax函数看起来像这样

function ajaxRequest(url) {

return $.ajax({
url : url
});

}

关于javascript - jQuery Promises 和 Deferred,困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943018/

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