IBM MobileFirst 6.3 JSONStore удаляет проблему в JS

я использую

WL.JSONStore.get(collectionName).remove(doc) 

в моем коде, а иногда он не удаляет документы, даже не отмечает их как удаленные. Что я могу сделать неправильно? Кстати, это:

WL.JSONStore.get(collectionName).clear()

работает отлично.

ОБНОВЛЕНИЕ:

Хорошо, вот код, и он отображается в моем браузере.

var collectionName = 'samplecollection';
var data = [{"name":"Jimbo"},{"name":"Patrick"},{"name":"Alex"},{"name":"Sam"},{"name":"Charlie"},{"name":"Donnie"}];

WL.JSONStore.init({samplecollection:{}}).then(function() {
    WL.JSONStore.get(collectionName).add(data).then(function(){
        WL.JSONStore.get(collectionName).findAll().then(function(docs){
            var promises = [];
            docs.forEach(function(doc){
                console.log(doc);
                var promise = WL.JSONStore.get(collectionName).remove(doc);
                promises.push(promise);
            });
            $.when.apply(null, promises).done(function() {
                WL.JSONStore.get(collectionName).findAll().then(function(docs){
                    console.table(docs);
                });
            });
        });
    });
});

код результата в хроме

Я ожидал, что console.table отобразит пустой массив. Но он не пустой. Он также не имеет всех сохраненных объектов. Поэтому я пытаюсь понять, что здесь происходит. Любые идеи?


person zWeRz    schedule 31.03.2015    source источник
comment
.clear() Удаляет все содержимое вашей коллекции. Можно уточнить, что за ситуация? Пожалуйста, предоставьте более подробную информацию о том, что происходит, например, вывод журнала и ваш код, который не работает. Например, может случиться так, что вы не используете API асинхронно и работаете в условиях гонки, но я не могу сказать об этом без соответствующего кода.   -  person Daniel A. González    schedule 31.03.2015
comment
@daniel-a-gonzález Обновил мой вопрос   -  person zWeRz    schedule 04.04.2015


Ответы (1)


По моему опыту, JSONStore для JS плохо работает с параллельными запросами. Вы можете использовать что-то вроде async.js для создания последовательного запроса.

Я рассказываю об этом в этом блоге https://developer.ibm.com/mobilefirstplatform/2015/02/24/working-jsonstore-collections-join/

person Namfo    schedule 06.04.2015