console.log("=====================sendToNearByUsers start=====================", minDistance, maxDistance)
try {
const now = new Date().getTime();
const bookUsers = await this.db.collection('business_book_map').where({
monitoring_location: this.db.command.geoNear({
geometry: new this.db.Geo.Point(monitor.monitoring_location.coordinates[0], monitor
.monitoring_location.coordinates[1]),
maxDistance: maxDistance,
minDistance: minDistance,
unit: 'meters'
}),
monitoring_time: this.db.command.gt(now),
monitoring_distance: this.db.command.gte(maxDistance)
}).get();
console.log("[sendToNearByUsers] 查询用户结果", bookUsers, "距离", maxDistance)
const filteredUsers = bookUsers.data.filter(user => user.create_uid !== monitor.uid);
console.log("[sendToNearByUsers] 过滤结果", filteredUsers, monitor.uid)
const promises = filteredUsers.map(async (user) => {
const result = await this.db.collection('business_notice').add({
uid: user._id,
phone: user.phone,
business_type_name: businessType,
business_address: monitor.street,
create_time: new Date()
});
this.callPhone(user.phone, monitor.street, businessType)
let item = {
phone: user.phone,
uid: monitor.uid
}
this.noticeSend(businessType, monitor.street, item)
return result;
});
const results = await Promise.all(promises);
console.log('[sendToNearByUsers]电话通知结果', results);
} catch (err) {
console.error("发送给附近的人出现异常", err)
}
console.log("=====================sendToNearByUsers end=====================", minDistance, maxDistance)
- 发布:2023-03-23 16:41
- 更新:2023-03-23 19:53
- 阅读:241
产品分类: uniCloud/App
示例代码:
操作步骤:
连接云端云函数预期结果, 触发执行
连接云端云函数预期结果, 触发执行
预期结果:
执行 : console.log("[sendToNearByUsers] 查询用户结果", bookUsers, "距离", maxDistance), 在云端日志打印出结果
执行 : console.log("[sendToNearByUsers] 查询用户结果", bookUsers, "距离", maxDistance), 在云端日志打印出结果
实际结果:
仅仅打印了 =====================sendToNearByUsers start=====================
其他没有打印, 也没有报错
仅仅打印了 =====================sendToNearByUsers start=====================
其他没有打印, 也没有报错
bug描述:
本地连接运行正常, 连接云端就无法执行. 也没有报错日志, 没有办法进行定位.
zttUnicloud (作者)
备注: 本地运行node环境:
Node.js v16.16.0
云端运行环境:
"cloudfunction-config": {
"runtime": "Nodejs12"
}
HB版本: 3.7.8.20230323
调用这个方法的时候没写await
-
zttUnicloud (作者)
确实是因为 没有写await, 那么云函数和本地执行为什么不一致, 为什么云函数一定要加上await呢, 加上一直是不是异步变成了同步了呢? 是否有相关的链接对这一情况进行了说明?
2023-03-24 12:48
-
回复 zttUnicloud: 云函数在入口方法return之后会进行冻结,return之后逻辑不会执行。本地调试时没做这种限制
2023-03-24 13:46
-
zttUnicloud (作者)
回复 DCloud_uniCloud_WYQ: 奇葩设置, 这样所有代码就都是同步的了, 完全把异步的好处丢弃了, 设置一个超时时间不行吗?
2023-03-27 12:45