在workligth JSONStore中几乎同时保存多次

时间:2014-09-25 21:58:44

标签: javascript html ibm-mobilefirst jsonstore

我想通过使用for循环

添加到JSONStore

所以我调用了forT中的saveToJSON()函数,其长度超过500,但它没有添加,并且在控制台中它显示成功,但是当我在jsonstore中查看时没有任何内容,并且循环次数为我打电话给jsonstore添加到控制台的红色泡泡中。

function saveToJSON(object) {

var data ={

    title :     object.title, 
    subtitle:   object.subtitle,         

  };

var options = {}; //default
WL.JSONStore.get('MyDataCollection').add(data, options)
  .then(function () {
    //handle success
    console.log("add JSONStore success");

    })
  .fail(function (errorObject) {
    //handle failure
    console.log("add JSONStore failure");

});

}

2 个答案:

答案 0 :(得分:2)

不建议在JSONStore中执行并行操作。 JSONtore旨在异步工作。您可以使用for循环以串行方式运行JSONStore操作。但是,您的示例未显示for循环。您是否尝试使用较小的迭代进行for循环?也许是2而不是500。

答案 1 :(得分:0)

尝试使用您要添加的数据创建一个数组,然后将其传递给JSONStore的添加API。在调用add API之前,请务必确保WL.JSONStore.init已成功完成。

伪代码示例:

//This is the data you want to add, you probably get this from a network call
var someData = [{title: 'hello'}, {title: 'world'}];

//This is an array that you will pass to JSONStore's add API
var someArray = [];

//Populate the array with data you want to pass to JSONStore's add API
for (var i = 0; i < someData.length; i++) {
    someArray.push(someData[i]);
}

//Add data inside someArray to the collection called: MyDataCollection
WL.JSONStore.get('MyDataCollection').add(someArray)
.then(function () {

    //Do a find all operation on the collection called: MyDataCollection
    return WL.JSONStore.get('MyDataCollection').findAll();
})
.then(function (res) {

    //Print all the data inside the collection called: MyDataCollection
    console.log(JSON.stringify(res));
});

//You may want to add .fail(function(){...}) to handle errors.