小程序
小游戏
企业微信
微信支付
扫描小程序码分享
请问js,for循环内,逐个查询数据库。当符合某条件时,如何跳出for循环?
目前使用break出错,微信开发工具点击“编译”,显示:Unsyntactic break。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
// 如果设置了 es6转es5 要开启 增强编译 (async () => { for (var i = 0; i < arr.length; i++) { var res = await db.collection('xx').where({ yy: arr[i] }).get() console.log(i, res) if (res.data.xxx) break } })()
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
谢谢。再试了一下,普通的for循环,break可以跳出;但是在查询数据库语句里面,点击“编译”,就出错(代码片段因为读取数据表,录制不了)。显示unknown: Unsyntactic break。具体如下:
arr是一维数组
for(i=0;i<arr.len;i++){
db.collection('xx').where({
yy:arr[i]
}).get({
success(rf) { //每次查询结果只有一条数据
console.log('i',i)
if(k == zz){ //如果符合某个条件,跳出for循环。这里只是举例子。
break
}
})
for里面使用异步?而且你的break在回调函数里。
正常就是break跳出循环。你写的不行就贴代码片段
代码片段贴一下,否则基本没人知道你在说啥
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
// 如果设置了 es6转es5 要开启 增强编译 (async () => { for (var i = 0; i < arr.length; i++) { var res = await db.collection('xx').where({ yy: arr[i] }).get() console.log(i, res) if (res.data.xxx) break } })()
async () => {
for (let i = 0; i < pnum; i++) {//.
var ru = await wx.cloud.callFunction({
name: "cc",
data: {
optype: 'aa',
fValue1: bb,
} })
console.log(ru)
if(ru.result==='error1'){
errFlag=1
console.log('errFlag',errFlag,i)
break
}else if(ru.result==='error2'){
errFlag=2
console.log('errFlag',errFlag,i)
break
}
}
}
谢谢。再试了一下,普通的for循环,break可以跳出;但是在查询数据库语句里面,点击“编译”,就出错(代码片段因为读取数据表,录制不了)。显示unknown: Unsyntactic break。具体如下:
arr是一维数组
for(i=0;i<arr.len;i++){
db.collection('xx').where({
yy:arr[i]
}).get({
success(rf) { //每次查询结果只有一条数据
console.log('i',i)
if(k == zz){ //如果符合某个条件,跳出for循环。这里只是举例子。
break
}
}
})
}
for里面使用异步?而且你的break在回调函数里。
那几次异步都是独立的,和for循环没啥关系了,
而且那几个重复执行的异步之间也不会按照你期望的顺序执行.
异步的执行栈也不在for循环里了.
如果期望每个异步按顺序执行,
试试用异步遍历
要判断跳出之类的自己加吧
正常就是break跳出循环。你写的不行就贴代码片段
代码片段贴一下,否则基本没人知道你在说啥
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html