【问题标题】:IBM MobileFirst 6.3 JSONStore remove issue in JSIBM MobileFirst 6.3 JSONStore 移除 JS 中的问题
【发布时间】:2015-06-04 21:37:15
【问题描述】:

我正在使用

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 显示一个空数组。但它不是空的。它也没有所有保存的对象。所以我试图了解这里发生了什么。有什么想法吗?

【问题讨论】:

  • .clear() 删除收藏的全部内容。能详细说明一下是什么情况吗?请提供有关正在发生的事情的更多详细信息,例如日志输出和失败的代码。例如,可能是您没有异步使用 API 并且遇到了竞争条件,但如果没有相关代码,我无法说出这些事情。
  • @daniel-a-gonzález 更新了我的问题

标签: javascript ibm-mobilefirst jsonstore


【解决方案1】:

根据我的经验,JS 的 JSONStore 不能很好地处理并行请求。您可以使用 async.js 之类的东西来创建串行请求。

我在这个博客 https://developer.ibm.com/mobilefirstplatform/2015/02/24/working-jsonstore-collections-join/ 中介绍了其中的一些内容

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    相关资源
    最近更新 更多