0

イベントハンドラーの完了後にオブジェクトを返すことができる 1 つの Deferred.when ステートメントを使用しようとしています。私のコードは以下のようになります。誰かがそれを機能させる方法を教えてもらえますか? 私は道場1.7を使用しています。

define(["dojo/_base/declare","dojo/_base/lang", "dojo/_base/xhr",
    "dojo/_base/json","dojo/_base/Deferred","dijit/registry","dojo/_base/connect",
    "dojo/query","dojo/on","dojo/dom-attr","dojo/dom","dojo/has","dojo/json","dojo/dom-style"],
    function(declare,lang,xhr,json,Deferred,registry,connect,$,on,attr,dom,has,json,domStyle)
    {

        declare("model.Item", [], 
        {
            deferred:null,
            item:null,
Load: function(){
               this.deferred = new Deferred();

               var overlay = registry.byId("readFromStore");
                   overlay.show();
                   Deferred.when(connect.connect(registry.byId("storeReadOK"),"onClick",this,this.loadFromStorage), (return (this.deferred)));
                  // I want modification for the above line.
                }

loadFromStorage:function()
                {
            // Do something here
               this.deferred.callback(this.item);

           }
     return model.Item;
        }
    );

Load 関数の以下のコードも試しましたが、機能していません。

    Load: function(){

     this.deferred = new Deferred();

              connect.connect(registry.byId("storeReadOK"),"onClick",this,this.loadFromStorage);
                var overlay = registry.byId("readFromStore");
                    overlay.show();
                        //  Deferred.when(connect.connect(registry.byId("storeReadOK"),"onClick",this,this.loadFromStorage),(overlay.hide()));

                return this.deferred;
     }
4

1 に答える 1