0

查看下面的示例以了解我要执行的操作:

//Caller.js
callingFunction : function (...)
{
    var a = new Assistant();
    console.log("This object has been returned ", a.showDialog(...));
},

//Assistant.js
showDialog : function (...)
{
    deferred.then(lang.hitch(this, this._showDialog));
    //I want to return someObject to callingFunction
},

_showDialog : function (dialogData)
{
    ...
    ...
    return someObject;
},}
4

1 回答 1

2

由于它已被延迟,因此在该函数结束之前它没有任何返回值。相反,将回调传递给showDialog并让它在延迟触发时调用该回调。


在下面回复您的评论:

你知道我会如何添加回调吗?

自从我使用 Dojo 以来已经有好几年了,所以它可能具有缩短它的功能,但通常的方式看起来像这样:

showDialog : function (callback)
{
    deferred.then(lang.hitch(this, function() {
        this._showDialog();
        callback(/*...whatever it is you want to pass back...*/);
    }));
},
于 2013-01-10T14:56:48.427 回答