亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

TypeScript5.2引入新關(guān)鍵字using介紹

 更新時間:2023年06月28日 09:37:35   作者:chuck  
這篇文章主要介紹了TypeScript5.2引入新關(guān)鍵字using使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

TypeScript新關(guān)鍵字

TypeScript 5.2將引入一個新的關(guān)鍵字:using。當它離開作用域時,你可以用Symbol.dispose函數(shù)來處置任何東西。

{
  const getResource = () => {
    return {
      [Symbol.dispose]: () => {
        console.log('Hooray!')
      }
    }
  }
  using resource = getResource();
} // 'Hooray!' logged to console

這是基于TC39提議,該提議最近達到了第三階段,表明它即將進入JavaScript。

using將對管理文件句柄、數(shù)據(jù)庫連接等資源非常有用。

Symbol.dispose

Symbol.dispose是JavaScript中一個新的全局symbol。任何具有分配給Symbol.dispose函數(shù)的東西都將被視為"資源":也就是具有特定生命周期的對象。并且該資源可以使用using關(guān)鍵字。

const resource = {
  [Symbol.dispose]: () => {
    console.log("Hooray!");
  },
};

await using

你也可以使用Symbol.asyncDisposeawait來處理那些需要異步處置的資源。

const getResource = () => ({
  [Symbol.asyncDispose]: async () => {
    await someAsyncFunc();
  },
});
{
  await using resource = getResource();
}

這將在繼續(xù)之前等待Symbol.asyncDispose函數(shù)。

這對數(shù)據(jù)庫連接等資源來說很有用,你要確保在程序繼續(xù)前關(guān)閉連接。

使用案例

文件句柄

通過節(jié)點中的文件處理程序訪問文件系統(tǒng),使用using可能會容易得多。

不使用using

import { open } from "node:fs/promises";
let filehandle;
try {
  filehandle = await open("thefile.txt", "r");
} finally {
  await filehandle?.close();
}

使用using

import { open } from "node:fs/promises";
const getFileHandle = async (path: string) => {
  const filehandle = await open(path, "r");
  return {
    filehandle,
    [Symbol.asyncDispose]: async () => {
      await filehandle.close();
    },
  };
};
{
  await using file = getFileHandle("thefile.txt");
  // Do stuff with file.filehandle
} // Automatically disposed!

數(shù)據(jù)庫連接

管理數(shù)據(jù)庫連接是在C#中使用using的一個常見用例。

不使用using

const connection = await getDb();
try {
  // Do stuff with connection
} finally {
  await connection.close();
}

使用using

const getConnection = async () => {
  const connection = await getDb();
  return {
    connection,
    [Symbol.asyncDispose]: async () => {
      await connection.close();
    },
  };
};
{
  await using { connection } = getConnection();
  // Do stuff with connection
} // Automatically closed!

圖片示例

下圖是上面示例的圖片版本:

總結(jié)

本文簡要介紹了TypeScript5.2中引入的新關(guān)鍵字using,它的出現(xiàn)可以很好的和Symbol.dispose搭配使用。有了它我們便不需要在try…catch語句中進行數(shù)據(jù)庫的關(guān)閉,這對管理文件句柄、數(shù)據(jù)庫連接等資源時非常有用。

更多關(guān)于TypeScript新關(guān)鍵字的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JS深入淺出Function與構(gòu)造函數(shù)

    JS深入淺出Function與構(gòu)造函數(shù)

    這篇文章主要介紹了JS深入淺出Function與構(gòu)造函數(shù),F(xiàn)unction是一個構(gòu)造函數(shù),可以通過該構(gòu)造函數(shù)去創(chuàng)建一個函數(shù),創(chuàng)建的函數(shù)是一個Function對象,具體內(nèi)容請參考下面文章的詳細內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • JS實現(xiàn)簡單的操作桿旋轉(zhuǎn)示例詳解

    JS實現(xiàn)簡單的操作桿旋轉(zhuǎn)示例詳解

    這篇文章主要為大家介紹了JS實現(xiàn)簡單的操作桿旋轉(zhuǎn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 詳解使用koa2完成Excel導入導出

    詳解使用koa2完成Excel導入導出

    這篇文章主要為大家介紹了詳解使用koa2完成Excel導入導出示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 輸入框跟隨文字內(nèi)容適配寬實現(xiàn)示例

    輸入框跟隨文字內(nèi)容適配寬實現(xiàn)示例

    這篇文章主要為大家介紹了輸入框跟隨文字內(nèi)容適配寬實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序 WebSocket詳解及應(yīng)用

    微信小程序 WebSocket詳解及應(yīng)用

    這篇文章主要介紹了微信小程序 WebSocket詳解及應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 微信小程序?qū)崿F(xiàn)拖拽 image 觸摸事件監(jiān)聽的實例

    微信小程序?qū)崿F(xiàn)拖拽 image 觸摸事件監(jiān)聽的實例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)拖拽 image 觸摸事件監(jiān)聽的實例的相關(guān)資料,這里提供image觸摸并監(jiān)聽的簡單實例,需要的朋友可以參考下
    2017-08-08
  • 使用preload預加載頁面資源時注意事項

    使用preload預加載頁面資源時注意事項

    本文主要介紹 preload 的使用,以及與 prefetch 的區(qū)別。然后會聊聊瀏覽器的加載優(yōu)先級,大家一定要認真看完
    2020-02-02
  • mitt tiny-emitter發(fā)布訂閱應(yīng)用場景源碼解析

    mitt tiny-emitter發(fā)布訂閱應(yīng)用場景源碼解析

    這篇文章主要為大家介紹了mitt tiny-emitter發(fā)布訂閱應(yīng)用場景源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 二維碼條形碼生成的JavaScript腳本庫

    二維碼條形碼生成的JavaScript腳本庫

    這篇文章主要為大家介紹了二維碼條形碼生成的JavaScript腳本庫實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 詳解微信小程序如何實現(xiàn)類似ChatGPT的流式傳輸

    詳解微信小程序如何實現(xiàn)類似ChatGPT的流式傳輸

    這篇文章主要為大家介紹了微信小程序如何實現(xiàn)類似ChatGPT的流式傳輸示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論