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 に答える