javascript 中常见的可中断执行编程范式
6154 단어 javascriptprogramming
如何跳出嵌套循环语句?
在日常开发中,有时候会通过编写双重 for 循环语句来完成业务逻辑,跳出 for 循环使用 휴식;语句,如果需要跳出双重 for 循环就需要定义 label 语句了
let num = 0;
outermost:
for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
if (i === 5 && j === 5) {
break outermost;
}
num++;
}
}
console.log(num);
如何实现脚本执行"睡眠"
디버그에서 阶段有时候需要用到下面的 sleep 函数来中断代码执行:模拟网络请求、暂停执行逻辑查看过渡效果.
function sleep(time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
(async function () {
console.log('开始执行' + new Date());
await sleep(3000);
console.log('等待3s后继续执行' + new Date());
})();
如何中止已经发起的网络请求
当 当 当 频繁 用户“提交”或 或“查询”按 按 向 向 向 后台 后台 发起 请求 时 时 时 时 时 时 时 时 时 优秀 优秀 用户 用户 体验 和 节省 网络 网络 带宽 带宽 带宽 带宽 带宽 带宽 带宽 带宽 带宽 带宽 带宽 对 对 用户 用户 的 点击 行为 约束 约束 约束 常见 常见 方式 方式 有 切换 处理 处理 处理 处理 处理 处理 处理 处理 处理 处理 如下 行为 行为图所示
在 在 按钮 按钮 切换 成 成 成 成 样式 样式 样式 样式 请求 请求 返回 返回 前 前 是 不 能 能 发起 新 的 请求 请求 的 的 的 的 的 的 : 有 有 : : 当 网络 网络 请求 时间 长 长 时候 时候 时候 用户 无法 取消 取消 当前 当前 请求 请求 切换新 切换新 的 请求 请求 入参 入参 入参 入参 长 一些 一些 一些,发起新的请求.
解决方案:可以利用 JS 新特性 AbortController 来实现 fetch 请求的中断.演示代码如下:
function FooComponent(props) {
useEffect(() => {
const controller = new AbortController();
const { signal } = controller;
const request = (async () => {
const data = await fetch(url, query, { signal });
// perfom setData
})();
return () => controller.abort();
}, [query]);
return <>...</>;
}
Reference
이 문제에 관하여(javascript 中常见的可中断执行编程范式), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/allen_yao/xie-ke-zhong-duan-zhi-xing-de-bian-cheng-fan-shi-2jcn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)