Javascript jQuery延迟,难以在链中获取值
buildMyUrl的结果在调用函数中始终未定义。我不确定链接这些函数时我做错了什么:Javascript jQuery延迟,难以在链中获取值,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,buildMyUrl的结果在调用函数中始终未定义。我不确定链接这些函数时我做错了什么: var buildMyUrl = function (callback) { var param; var addParams = function (domainUrl) { domainUrl += "page.aspx?"; domainUrl += "Param1="; }; $.when(self.buildDomai
var buildMyUrl = function (callback)
{
var param;
var addParams = function (domainUrl)
{
domainUrl += "page.aspx?";
domainUrl += "Param1=";
};
$.when(self.buildDomainUrl()).then(addParams);
};
buildDomainUrl
返回JQuery承诺,添加参数可以正常工作。
现在我有一个函数,它想使用buildMyUrl
的结果:
var buildAPageUrl = function ()
{
var dfd = $.Deferred();
var addCalendarPage = function (domainUrl)
{
dfd.resolve(domainUrl += "/Calendar.aspx?");
};
// Here lies the problem (buildMyUrl is undefined)
$.when(buildMyUrl()).then(addCalendarPage);
return dfd.promise();
}
以下作品基于Kevin B的评论:
var buildMyUrl = function (callback)
{
var dfd = $.Deferred();
var param;
var addParams = function (domainUrl)
{
domainUrl += "page.aspx?";
domainUrl += "Param1=";
dfd.resolve();
};
$.when(self.buildDomainUrl()).then(addParams);
return dfd.promise();
};
buildMyLoginUrl()
在哪里定义?@Kevin B.buildMyLoginUrl应该是buildMyUrl我的错误。buildMyUrl
没有返回延迟对象。它没有返回任何东西。这是我的问题,我试图让buildMyUrl返回一个承诺,但我无法让它工作。我不知道我做错了什么,那么
就不是延迟对象了then
是一种类似于done
和fail
的方法,它向延迟对象添加回调<代码>$。当确实返回延迟对象时。