开发者社区> 问答> 正文

能否给出一个使用AsyncLocalStorage的简单示例?

能否给出一个使用AsyncLocalStorage的简单示例?

展开
收起
三分钟热度的鱼 2024-06-06 15:57:53 31 0
1 条回答
写回答
取消 提交回答
  • 当然可以啦。以下是一个简单的示例,展示了如何在HTTP服务器中使用AsyncLocalStorage来为每个请求分配一个唯一的ID,并在异步操作中使用这个ID进行日志记录:

    import http from 'node:http';  
    import { AsyncLocalStorage } from 'node:async_hooks';  
    const asyncLocalStorage = new AsyncLocalStorage();  
    function logWithId(msg) {  
      const traceId = asyncLocalStorage.getStore();  
      console.log(`${traceId}:`, msg);  
    }  
    let traceId = 0;  
    http.createServer((req, res) => {  
      asyncLocalStorage.run(traceId++, () => {  
        logWithId('start');  
        setImmediate(() => {  
          logWithId('finish');  
          res.end();  
        });  
      });  
    }).listen(8080);
    
    2024-06-06 16:42:53
    赞同 2 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载