nnnjjj123
2020-11-17 1b2c1edb61190eeb19f465ff031eaa3b2a1b8dbc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
define([
    'dojo/_base/lang',
    'dojo/Deferred',
    'dstore/Memory',
    'dstore/QueryResults',
    './typesData'
], function (lang, Deferred, Memory, QueryResults, typesData) {
    // summary:
    //        Returns a hash containing stores which generate errors on specific
    //        methods, synchronously or asynchronously.
 
    var asyncFetchStore = new Memory(),
        asyncFetchTotalStore = new Memory(),
        asyncPutStore = new Memory({ data: lang.clone(typesData) });
 
    asyncFetchStore.fetch = asyncFetchStore.fetchRange = function () {
        var dfd = new Deferred();
        setTimeout(function () { dfd.reject('Error on async query'); }, 200);
        return new QueryResults(dfd.promise);
    };
 
    asyncFetchTotalStore.fetch = asyncFetchTotalStore.fetchRange = function () {
        // dstore/QueryResults doesn't ensure the results return a promise; we have to ourselves
        var dfd = new Deferred();
        dfd.resolve([]);
        var total = new Deferred();
        total.reject('Error getting the total');
        return new QueryResults(dfd.promise, {
            totalLength: total.promise
        });
    };
 
    asyncPutStore.put = function () {
        var dfd = new Deferred();
        setTimeout(function () { dfd.reject('Error on async put'); }, 200);
        return dfd.promise;
    };
 
    return {
        asyncFetch: asyncFetchStore,
        asyncFetchTotal: asyncFetchTotalStore,
        asyncPut: asyncPutStore
    };
});