Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery延迟,难以在链中获取值_Javascript_Jquery_Jquery Deferred - Fatal编程技术网

Javascript jQuery延迟,难以在链中获取值

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

buildMyUrl的结果在调用函数中始终未定义。我不确定链接这些函数时我做错了什么:

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
的方法,它向延迟对象添加回调<代码>$。当确实返回延迟对象时。