javascript - 在循环中将文档添加到 worklight jsonstore

标签 javascript ibm-mobilefirst jsonstore

我想动态生成列表条目,同时将它们作为 jsonstore 文档添加到我的本地存储。

当我这样做时:

     var j=0;
       while(j<7) {

        /* populating our jsonstore */   
        accessor.add({stuff_to_add})
        .then(function(){})

        /* showing it to the user */
        $('<li>').attr({attributes}).html('html').appendTo('element');   
        j++;

       }

只添加了一个文档,因为我认为 worklight 不会自动将添加请求放入队列中,如果前一个未解决或类似情况,则取消最后一个。

所以当我这样做时:

      var j=0;
       while(j<7) {

        /* populating our jsonstore */   
        accessor.add({stuff_to_add})
        .then(function(){

        /* showing it to the user */
        $('<li>').attr({attributes}).html('html').appendTo('element');   
        j++;   })

       }

Mozilla 完全崩溃,甚至无法成功停止脚本 我不明白为什么,因为它应该只调用 add 函数多次 =(调用时间(accessor.add)/循环时间)应该是有限。

编辑:实际上,如果我们假设 worklight 不会将文档放入添加队列,则每次循环循环时都会替换初始添加请求,并且它永远不会完成,这就解释了崩溃。

编辑 2:尝试使用递归函数调用自身直到 j 达到 7 而不是循环

最佳答案

编辑 2 胜:

var j=0;
       while(j<7) {

        /* creating the ui*/
        $('<li>').attr({attributes}).html('html').appendTo('element');
        j++;

       }

       /* populating jsonstore */

      add_documents(0,stuff_to_add);

其中 add_documents(0,stuff_to_add) 定义如下:

add_documents = function(n,stuff_to_add){ 

    if(n<7){
        accessor.add({stuff_to_add})
        .then(function(){alert(n);add_documents(n+1,stuff_to_add);});
    }
    else
    {return true;}
};

关于javascript - 在循环中将文档添加到 worklight jsonstore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24060041/

相关文章:

javascript - 错误: "Maximum call stack size exceed" AJAX calling WebMethod

javascript - 如何做出我自己的选择

javascript - 如何避免在定义符号之前进行javascript解析?

java - Mobilefirst 平台与 NETIQ IDAM 的集成

ios - 网关挑战处理程序 : handleChallenge() not being called after upgrading to MobileFirst v. 8.0

mysql - ExtJS Store - 将特定字段复制到存储

javascript - 移动优先 - 加密缓存成功和失败处理程序

javascript - Xpath 选择两个子元素都包含文本的元素

c++ - 与 Worklight 静态库的符号冲突

ios - IBM Worklight - native iOS 是否支持 JSONStore?