Asynchronous 如何组合Dojo.Deferred+;dojo.data.read
我有一系列要执行的异步事件,其中一些是Asynchronous 如何组合Dojo.Deferred+;dojo.data.read,asynchronous,dojo,Asynchronous,Dojo,我有一系列要执行的异步事件,其中一些是fetch命令。我了解使用dojo.Deferred的基本知识,但到目前为止,我所有添加fetch回调的尝试都失败了 我试图做的是1)向我的延迟对象添加一个fetch调用2)运行fetch函数,可能带有一些额外的参数,3)将“fetched”值传递给链中的下一个回调。。。以下是我得到的: var myDeferred = new dojo.Deferred(); myDeferred.addCallback(this.myStore.fetch({query
fetch
命令。我了解使用dojo.Deferred
的基本知识,但到目前为止,我所有添加fetch
回调的尝试都失败了
我试图做的是1)向我的延迟对象添加一个fetch调用2)运行fetch函数,可能带有一些额外的参数,3)将“fetched”值传递给链中的下一个回调。。。以下是我得到的:
var myDeferred = new dojo.Deferred();
myDeferred.addCallback(this.myStore.fetch({query:{//some query//},
onComplete: function(items) { return items } })); //add the fetch callback? i think this is wrong...
myDeferred.addCallback(function(items) { console.log(items) }); //log the fetched items
myDeferred.callback(); //to fire
你必须在回叫回执时发出延迟通知
var myDeferred = new dojo.Deferred();
this.myStore.fetch({
query:{//some query//},
onComplete: function(items) { myDeferred.callback(items); }
})
myDeferred.addCallback(function(items) { console.log(items) }); //log the fetched items
如果您有多个回迁,您应该查看DeferredList并从延迟回调返回延迟。两者都可以用来创建相当复杂的行为。
您还应该研究新的dojo 1.5 Deferred,它有一个更简单的使用模式,这可能会对您有所帮助。从1.5开始,您可以在Deferreds上使用.then()方法轻松链接它们。