You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.2 KiB
61 lines
1.2 KiB
define([ |
|
"dojo/_base/declare", |
|
"dojo/Deferred", |
|
"dojo/store/Memory", |
|
"dojo/store/util/QueryResults", |
|
"dojo/store/util/SimpleQueryEngine" |
|
], function(declare, Deferred, Memory, QueryResults, SimpleQueryEngine){ |
|
|
|
// module: |
|
// dijit/tests/AsyncMemoryStore |
|
|
|
return declare(null, { |
|
// summary: |
|
// Wrapper on dojo/store/Memory that makes functions async (for testing) |
|
|
|
queryEngine: SimpleQueryEngine, |
|
|
|
constructor: function(hash){ |
|
this.store = new Memory(hash); |
|
}, |
|
|
|
get: function(id){ |
|
var d = new Deferred(), store = this.store; |
|
try{ |
|
d.resolve(store.get(id)); |
|
}catch(e){ |
|
d.reject(e); |
|
} |
|
return d; |
|
}, |
|
|
|
getIdentity: function(object){ |
|
return this.store.getIdentity(object); |
|
}, |
|
|
|
put: function(object, directives){ |
|
return this.store.put(object, directives); |
|
}, |
|
|
|
add: function(object, directives){ |
|
return this.store.add(object, directives); |
|
}, |
|
|
|
remove: function(id){ |
|
return this.store.remove(id); |
|
|
|
}, |
|
|
|
query: function(query, options){ |
|
var d = new Deferred(), store = this.store; |
|
setTimeout(function(){ |
|
try{ |
|
d.resolve(store.query(query, options)); |
|
}catch(e){ |
|
d.reject(e); |
|
} |
|
}, 10); |
|
return QueryResults(d); |
|
} |
|
}); |
|
});
|
|
|