帖子
帖子
用户
博客
课程
显示全部楼层
14
帖子
0
勋章
561
Y币

[App引擎] model.updateById()放到循环里APP会挂掉

[复制链接]
发表于 2014-11-4 10:18:02
本帖最后由 wjyefeng 于 2014-11-4 12:23 编辑

model.updateById()放到循环里循环修改某个字段值时,APP会挂掉


var fcid = 'aaa';
var model = api.require('model');
var tidArr = ['b1','b2','b3'];

for(var i=0,len=tidArr.length; i<len; i++){
  model.updateById({
   class: 'calssname',
   id: tidArr,
   value: {fcid: fcid, status: 1}
  }, function(ret, err){
  });
}

53
帖子
0
勋章
522
Y币
本帖最后由 毛腿 于 2014-11-13 21:19 编辑

这种写法是错误的,因为循环中的操作的异步操作,你用同步的写法  i永远=tidArr.length。你要用闭包
var fcid = 'aaa';
var model = api.require('model');
var tidArr = ['b1','b2','b3'];

for(var i=0,len=tidArr.length; i<len; i++){
  (function(id){
               model.updateById({
               class: 'calssname',
               id: id,
             value: {fcid: fcid, status: 1}
             }, function(ret, err){
            });  

   })(tidArr[l]);

}


28
帖子
1
勋章
1万+
Y币
你好,请问是iOS还是Android上的问题?另外,你的id似乎传错值了
14
帖子
0
勋章
561
Y币
本帖最后由 wjyefeng 于 2014-11-4 12:28 编辑
kenny 发表于 2014-11-4 12:02
你好,请问是iOS还是Android上的问题?另外,你的id似乎传错值了

是在Android上的,id是我在这里写错了,还要加下标i,我APP上没错

另:有没有批量更新的方法?

如果updateById()中的id可以是数组是不是。。。

28
帖子
1
勋章
1万+
Y币
wjyefeng 发表于 2014-11-4 12:25
是在Android上的,id是我在这里写错了,还要加下标i,我APP上没错

另:有没有批量更新的方法?

好的,问题已反馈,目前暂时没有批量更新的方法
14
帖子
0
勋章
561
Y币
毛腿 发表于 2014-11-13 21:10
这种写法是错误的,因为循环中的操作的异步操作,你用同步的写法  i永远=tidArr.length。你要用闭包
var fc ...

谢谢!!!
您需要登录后才可以回帖 登录

本版积分规则