- 云函数中异步相关问题?
云函数版本:Nodejs16.13 环境:生产 //伪代码 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database(); exports.main = async (event, context) => { //并行 const task1 = db.collection('xx').xx.get() const task2 = db.collection('xxx').xx.get() const data1 = (await task1).data; const data2 = (await task2).data; //... //异步执行 db.collection('xx').where(..).update(..); db.collection('xxx').where(..).update(..); return { success: true } } 偶然发现上述代码中两个update没有await等待,结果也正常执行。继续改造测试(云函数本地调试): //伪代码 exports.main = async (event, context) => { //... //异步执行 backgroundTask(); console.log('return data ' + new Date()) return true } async function backgroundTask() { console.log('sleep ' + new Date()) await new Promise(resolve => setTimeout(resolve, 5000)) console.log('done ' + new Date()) } //云函数本地调试 Console [info] 函数被触发,正在执行中... cloudFunctionTest.js:97 sleep Sun Nov 12 2023 14:23:55 GMT+0800 (中国标准时间) cloudFunctionTest.js:38 return data Sun Nov 12 2023 14:23:55 GMT+0800 (中国标准时间) node.js:1 [info] 函数执行成功(耗时 366ms) true node.js:1 [info] 调用 本地 云函数 'myFunctions' 完成 (耗时 370ms) cloudFunctionTest.js:99 done Sun Nov 12 2023 14:24:00 GMT+0800 (中国标准时间) 按文档描述,云函数并不是执行完就立马销毁,似乎云函数内可以执行一些短期的异步任务?
2023-11-12 - 关于公众号H5或小程序内,嵌入第三方页面/系统,大家真的会用代理转发吗?
已配置的安全域名业务域名:www.myDomain.com,api.myDomain.com 已满足的需求:在公众号H5/小程序内加载第三方资源 比如前端需要download第三方图片或文件流,不可能在微信侧去配置数不尽的域名白名单; 所以在服务端做了一层反向代理api.myDomain.com/proxy?u=http://thirdDomain.com/xxx.suffix,前端则做一层正向代理把原本请求第三方资源的链接请求到api.myDomain.com/proxy; 这样做是能满足需求,只是存在安全隐患,但是架不住需求侧“我就是要” 新的需求:在公众号H5/小程序内嵌第三方web系统 同样的前置条件:“需求侧我就是要”、”数不尽的第三方域名白名单“ 比如要在小程序里面嵌入一个"taobao.com” 实现思路:前端拦截所有请求,只要不是白名单域名的链接,全部转发到api.myDomain.com/proxy 大家碰到这种需求是怎么处理的?除了收购wechat和代理,还有其它更好的解决方案吗?
2023-09-25