V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nomagick  ›  全部回复第 3 页 / 共 24 页
回复总数  468
1  2  3  4  5  6  7  8  9  10 ... 24  
不能够,wear leveling , 控制器会自动把写操作分配到所有的 block 上
不要敝帚自珍了。。。js 里面一个断点 console.log ,随你数据咋生成的
Mac studio 也没有,更加没有的是摄像头。

你买摄像头的时候,摄像头带一个麦克风,用那个。
57 天前
回复了 Zien 创建的主题 Apple Mac mini m4 预购国行还是等正常版?
跟国行关系不大,周边还没来得及出呢,需要和这个新尺寸配套的硬盘 dock 和 USB-A 转接板
@itskingname 你这属于好的,只是当时稍微烦一下子,要是他看的技术是纸上谈兵怎么办,金玉其外败絮其中怎么办,

天天上班一边捏鼻子一边给擦屁股,这受得了吗
自己在网上看了两篇文章,就一意孤行
比喜欢找外部咨询更恐怖的是,不知道找外部咨询
翻译一下,就是把 C++程序员裁了之后 v8 引擎写不动了,一些有的没的语法糖,你们 JS 程序员自己实现就好,别来我这产生人力成本了
360buy
64 天前
回复了 punish19 创建的主题 随想 愚孝是心理疾病了吧?
文革长大的一代多少有点心理问题,理解为主,主要是你也没有任何办法
64 天前
回复了 Pepsigold 创建的主题 职场话题 帮忙选一下 offer,国内国外都有!
楼主加油,我的 offer 还在等待国务院批准
我这边是 node.js 20.11.1
我觉得可能和原生 async function 有关,如果是原生的 async function 你这个 hack 就中断不了,但如果是 babel 之类的编译器模拟出来的,打断 then 链条就可以。
不啊,你这言之凿凿的都给我整不自信了,你这真的是没有中断任何代码的执行,而是你的 cancel 操作,造成了 task.locals.count 的赋值失败,这产生了
TypeError: Cannot set properties of undefined (setting 'count')

这才中断了执行,如果你不操作 task.locals ,task1 就会一直运行下去
```typescript
import { task } from 'protask';

function sleep<T>(milliSeconds: number, arg?: T): Promise<T> {
return new Promise(function (resolve, reject) {
setTimeout(resolve, milliSeconds, arg);
});
}

async function printTaskLocal() {
await sleep(100);
console.info(task.locals());
}

task.create('test task 1', async () => {
try {
for (let i = 0; i < 100; i++) {
// task.locals().count = i;
console.log('task 1 running');
await printTaskLocal();
await sleep(1000);
}
console.log('Task 1 resolve');
} catch (e: any) {
console.log('Task 1 error');
console.info(e.toString());
} finally {
console.log('Task 1 finally');
}
});

task.create('test task 2', (async () => {
await sleep(3000);
console.info('abort task 1');
task.abort('test task 1');
}));
```
不对,我真的下载下来运行了。

复写 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;

说到底对代码执行流程的操作,还是要交给语言和运行时层面去解决,如果一个函数流程,是不是被完整执行,还可以被外部代码莫名其妙地影响,这对整个系统来讲完全就是一个灾难
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4370 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 04:07 · PVG 12:07 · LAX 20:07 · JFK 23:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.