请看下面的示例,了解我要做的事情:
//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;
},}
答案 0 :(得分:2)
由于它被推迟,因此在该功能结束之前没有任何东西可以返回。相反,将回调传递给showDialog
并让它在延迟触发时调用该回调。
重新评论以下内容:
你知道我会如何添加回调吗?
自从我使用Dojo以来已经年,因此它可能具有缩短功能的功能,但通常的方式如下:
showDialog : function (callback)
{
deferred.then(lang.hitch(this, function() {
this._showDialog();
callback(/*...whatever it is you want to pass back...*/);
}));
},