代码拉取完成,页面将自动刷新
节流函数对范例中的同步操作有效,但是对于async await这种访问数据库的异步操作无效,无法达到节流的效果,请您更正。
你可以提供一段示例哦
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
`<script setup>
const change=async()=>{
uni.$uv.throttle(await dataGet(),1000)
}
const dataGet=async()=>{
let res = await uniCloud.database().collection('circle-articles').get({getOne:true})
console.log(res);
return res
}
</script>`
上述代码中'circle-articles'是我自建的集合名称,您替换成您自建的数据库名称,就会发现,这个异步的数据库读取操作是无法节流的,连续快速点击会连续返回数据,应该是promise对象的pending状态在您的节流函数中没有当做函数已经触发。
我用的是unicloud的云服务空间哈,但是问题应该不在服务空间上,我看了一下您的源码,应该是没有对promise对象的pending状态进行控制,所以pending没有返回值的时候节流函数就没起作用。
<script setup>
const change=async()=>{
uni.$uv.throttle(await dataGet(),1000)
}
const dataGet=async()=>{
let res = await uniCloud.database().collection('circle-articles').get({getOne:true})
console.log(res);
return res
}
</script>
<script setup>
const change=async()=>{
uni.$uv.throttle(dataGet,1000)
}
const dataGet=async()=>{
let res = await uniCloud.database().collection('circle-articles').get({getOne:true})
console.log(res);
return res
}
</script>
登录 后才可以发表评论