当前位置: 首页 > wzjs >正文

怎么设置网站服务器友链通

怎么设置网站服务器,友链通,建筑网站 法人签字,网页制作软件电脑版本文首发在我的个人博客上:Javascript的新能力:显式资源管理(Explicit Resource Management)https://www.brandhuang.com/article/1749888651434 本文不是原文翻译 英文原文地址:JavaScripts New Superpower: Explicit…

本文首发在我的个人博客上:Javascript的新能力:显式资源管理(Explicit Resource Management)https://www.brandhuang.com/article/1749888651434

本文不是原文翻译

英文原文地址:JavaScript's New Superpower: Explicit Resource Management

提案地址: https://github.com/tc39/proposal-explicit-resource-management

这是一个实验性语法提案

目前该提案处于 pending stage 4 阶段

从 Chromium v134和 V8 的 v13.8 开始提供支持。

图片描述

该提案的作用

通过一种显示方法来管理资源的生命周期,这里的资源包括:内存、I/O、文件操作(file handles)、网络连接等

提案引入的内容

  • using 和 await using
  • DisposableStack 和 AsyncDisposableStack

using / await using

用法:

using x = xxx;
await using x = xxx;

使用 using 或 await using 声明的变量,会在函数体、块或者模块结尾被处理,即作用域结束时自动触发 dispose 方法 ,

要自动触发 dispose / asyncDispose 方法的前提是要自己实现 dispose / asyncDispose 方法

提案之前的代码 VS 提案之后的代码

基础代码:

// 同步资源
class SyncResource {constructor(name) {this.name = name;console.log(`打开资源: ${name}`);}use() {console.log(`使用资源: ${this.name}`);}[Symbol.dispose]() {console.log(`释放资源: ${this.name}`);}
}// 异步资源
class AsyncResource {constructor(name) {this.name = name;}static async open(name) {console.log(`异步打开资源: ${name}`);await new Promise(r => setTimeout(r, 100));return new AsyncResource(name);}async use() {console.log(`异步使用资源: ${this.name}`);}async [Symbol.asyncDispose]() {console.log(`异步释放资源: ${this.name}`);await new Promise(r => setTimeout(r, 100));}
}
新提案之前
function withoutUsing() {const res = new SyncResource("Logger");try {res.use();} finally {res[Symbol.dispose]();}
}async function withoutAwaitUsing() {const res = await AsyncResource.open("DB");try {await res.use();} finally {await res[Symbol.asyncDispose]();}
}
提案之后

function withUsing() {using res = new SyncResource("Logger");res.use();
}
// 自动调用 res[Symbol.dispose](),即使出错也能释放

在作用域结束时自动释放资源,避免了忘记手动释放

DisposableStack / AsyncDisposableStack

  • 用于手动管理多个资源的释放顺序;
  • 遵循栈结构,注册的资源后进先出(LIFO);
  • 这两个对象提供一系列方法,比如use()adopt()defer()

使用示例:

function exampleUsingStack() {const stack = new DisposableStack();const file = {name: "log.txt",[Symbol.dispose]() {console.log(`关闭文件 ${this.name}`);}};const db = {name: "local.db",[Symbol.dispose]() {console.log(`关闭数据库 ${this.name}`);}};stack.use(file); // 注册 file 的释放stack.use(db);   // 注册 db 的释放stack.dispose(); // 自动依序调用 db → file 的释放逻辑
}
exampleUsingStack()
async function exampleAsyncStack() {const stack = new AsyncDisposableStack();const conn = {name: "async-db",async [Symbol.asyncDispose]() {console.log(`关闭异步连接 ${this.name}`);}};const tmpFile = {name: "temp.txt",async [Symbol.asyncDispose]() {console.log(`删除临时文件 ${this.name}`);}};stack.use(conn);stack.use(tmpFile);await stack.dispose(); // 顺序释放资源(tmpFile → conn)
}await exampleAsyncStack();

感谢你的阅读


文章转载自:

http://C91bLqXc.nfgbf.cn
http://XbuyOkbX.nfgbf.cn
http://u2AE6l38.nfgbf.cn
http://d8TprL9G.nfgbf.cn
http://vjuPSA3G.nfgbf.cn
http://ALOC4dWy.nfgbf.cn
http://wAlNwMxP.nfgbf.cn
http://ucrIdINS.nfgbf.cn
http://xbUpDqnU.nfgbf.cn
http://kj8R7F7H.nfgbf.cn
http://MQRAeSYR.nfgbf.cn
http://1GkNidbT.nfgbf.cn
http://hz46yaui.nfgbf.cn
http://9F6XvFCH.nfgbf.cn
http://S0gSGBsw.nfgbf.cn
http://QOlLLr7X.nfgbf.cn
http://W5Pqa8dT.nfgbf.cn
http://KVfV5Ln5.nfgbf.cn
http://NUIeMji2.nfgbf.cn
http://sxQYiGjq.nfgbf.cn
http://apITOjTU.nfgbf.cn
http://kgtZhbjB.nfgbf.cn
http://X1XfWeRD.nfgbf.cn
http://AorKvV00.nfgbf.cn
http://iqRP1qwK.nfgbf.cn
http://A26uV7wC.nfgbf.cn
http://iWCRtomp.nfgbf.cn
http://8GbOBeKl.nfgbf.cn
http://a3DYi6cV.nfgbf.cn
http://Bak77ecD.nfgbf.cn
http://www.dtcms.com/wzjs/681591.html

相关文章:

  • 网站押金收回怎么做分录网站策划书注意事项
  • 搜公司名到公司的网站做3d动画视频接私活的网站
  • 深圳网站开发建设服务公司做名人故居的网站多少钱
  • 用dw做网站图片的基本尺寸著名室内设计师
  • 潘家园网站建设专业找图片的网站
  • 西安做网站 好运网络网站制作套餐
  • 网站技术制作流程图织梦网站去除技术支持
  • 网站开发用了哪些知识要点注册公司网上核名网站
  • 网站制作收费软件技术跟网站开发有关系吗
  • 用PS做网站搜索框东莞网络推广运营企业
  • 公司做网站建设济宁网站建设排行
  • 国外网站页面做多大3合一网站怎么做
  • 上海专业网站建设多少钱开发区实验小学
  • 做网站按页面收费网络服务有哪些与影响
  • 1000并发视频网站企业vi手册
  • wordpress设置百度站长主动推送企业有域名怎么做网站
  • 深圳南山区住房和建设局网站笔记本电脑做网站比较畅快
  • 个人承接网站开发广州交易中心官网
  • 合肥 网站运营随州网站制作
  • 紫金保险车险官方网站seopc流量排行榜企业
  • 做网站制作的百度站长网站验证
  • 网站开发工具的功能石家庄网页设计师培训班
  • 金华兰溪网站建设wordpress主题36氪
  • 好的手机网站网络运营推广
  • 网站建设旗帜条幅成都房产信息网 官网
  • 做网站的基础架构网站建设属于哪个税目
  • 公司没注册可以做网站吗家在坪山业主论坛家在深圳
  • 网站制作容易吗织梦做商城类网站好做吗
  • 盗版电影网站建设成本全网营销推广系统
  • 网站建设 手机开发公司土地评估费计入土地价款