V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nomagick  ›  全部回复第 3 页 / 共 23 页
回复总数  453
1  2  3  4  5  6  7  8  9  10 ... 23  
不对,我真的下载下来运行了。

复写 then 不足以中断执行流,你的 example 之所以能够 work 是因为 `task.locals()!.count=i;` 这句在 cancel 之后抛了异常,起到了 abort error 的效果。。。
@pursuer 打扰了,看起来真的可以,进入了我的知识盲区,原来复写 promise.then 就能中断执行流,那我就比较好奇了,async function 原本的那个 promise 后来怎么样了,这个 promise 是不是吊起来了
@nomagick 哦,对不起,是我搞混了
@pursuer 没有啊,在 cancel 的情况,不是 reject 的情况 https://github.com/partic2/protask/blob/b22d446a33cf47e34f3aa4e6d4244185aa75d9cf/src/index.ts#L57-L60
你在这 catch 了之后没有做任何操作,Promise 就吊在这了,这也是你能看起来中断执行的所在
@pursuer 所以你至少在 cancel 之后需要 reject cancel error, 这样下游的代码路径才能继续结算,所以下游也需要再在某个地方 catch cancel error ,对代码的入侵性不亚于显式 if (await jobCancelled) return;

说到底对代码执行流程的操作,还是要交给语言和运行时层面去解决,如果一个函数流程,是不是被完整执行,还可以被外部代码莫名其妙地影响,这对整个系统来讲完全就是一个灾难
@pursuer 不一样,通过 iterator 实现代码是中断了的,运行时知道现在代码已经 throw 或者 return ,但你现在这样,通过 hack 阻止 Promise 结算,Promise 是一直吊在 pending 状态的,运行时也不知道你这部分代码不会再执行了,只知道 Proimse 没有 resolve 。

具体运行时有没有足够聪明能够解开这个泄漏局我不太了解,总之你这操作非常危险,很有可能解不开,而且即便能解开,我看你代码一旦 cancel, 因为你阻断了 Promise 结算,所以 cleanup 的步骤就永远不会执行,但你对这些 AbortSignal 却有全局的引用,这部分也会泄露。
不是这样的,你这没有作用。。

主动中断同步代码目前只能通过操作系统,中断线程或中断进程
主动中断异步代码,可以通过 iterator 在 yield 的节点中断,但在 js 语法之外需要魔改

你这只是在上游 then 之后选择是否往下游返回,没有中断任何代码的执行,掩耳盗铃了属于是
。。。缓慢打出一个问号 ❓
41 天前
回复了 tmkook 创建的主题 分享发现 避雷 yeelight
啥品牌 10 年质保呢,这公司能给自己保十年不。。

都是 LED 给惯的毛病,从前没有 LED 照明灯的时候,还 10 年,10 个月就阿弥陀佛了
@nomagick 实际情况等于是公司托关系找的我, 进去之后别人没有懂的,进去搞科普正时弊挑大梁
别把所谓央企想得多么美好,不一定适合你,是谁托关系找的谁还不一定呢

我刚毕业那会也算是家里托关系进了一家央企下面的公司

后来进去以后,实际情等于况是这家公司托关系找来了我

如果不是家里的关系,对方是不可能用那么低廉的工资招到劳资这种程度的专业技术人员的
60 天前
回复了 pimin 创建的主题 投资 给还没进入股市的朋友一点建议
求仁得仁

有的人就觉得股票纯就是交易,就是和庄家坐下赌,那 A 股还真就是这种地方。

但是你要想找稳定分红能当理财的个股,其实也能找到
69 天前
回复了 0x663 创建的主题 健康 在北京便不成形,排便困难
饮水机多久没刷了
没错,prettier 懂个茄子,多打两个空行都不行,说起来就是劳资最懂,空行就是不能多,简直为祸一方
不加分号心神不宁。
加分号不是给编译器加的,是给程序员的脑子加的,了结心智负担,清空快速缓存准备加载下一行。
需要 ffi 调用的公共库代码麻烦用 C 重写谢谢,不要把 go 再传播到其他语言了
不是这样的,罚款不是拍脑袋就能罚款的,用工方必须要列出证据证明承受了这么多数额的损失才能主张罚款。

要是能随便罚款那工资都不用付了
@Jinnrry 那你没中间 wifi 的问题,我中间有 wifi , 我从网关是小米智能家庭面板,家里面米家 wifi 的电器也有很多
最近正好在弄米家,买了好多东西

中枢网关挺好用的,用自动化极客版,变量啥的都有。
但是别买多了,别让他主备切换,变量同步出过问题

子网关到设备是蓝牙,但是子网关到中枢网关是 wifi, wifi 的部分要注意防干扰

前两天查了一下,米家在 wifi 里面走的协议有些是多播 UDP ,信道太繁忙就更可能丢包,

我个人现在给所有 IoT 设备单独一个 VLAN ,两个 SSID, 和其他 wifi 设备尽量隔离


但说到底,所有复杂的类似代码的东西,不按真正的代码管理,都是玩票。
最终我想的是自己写程序和子网关通信,接替中枢网关,如果中枢网关未来能开放 API 最好,这样就只和中枢通信,不行的话就自己和子网关通信。
1  2  3  4  5  6  7  8  9  10 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3450 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 00:42 · PVG 08:42 · LAX 16:42 · JFK 19:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.