0

buildMyUrlの結果は、呼び出し元の関数では常に未定義です。これらの関数を間違ってチェーンしているのが何をしているのかわかりません。

var buildMyUrl = function (callback)
{   
    var param;

    var addParams = function (domainUrl)
    {
        domainUrl += "page.aspx?";
        domainUrl += "Param1=";
    };

    $.when(self.buildDomainUrl()).then(addParams);
};

buildDomainUrlJQueryのpromiseを返し、パラメーターの追加は正常に機能します。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();
    }
4

1 に答える 1

0

以下は、KevinBのコメントに基づいた作品です。

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();
};
于 2012-05-18T09:39:41.780 に答える