Deno 顶级等待

2023-12-25

正在阅读homepage https://deno.land/新的 JS 运行时 deno

我看到了下面的代码:

import { serve } from "https://deno.land/[email protected] /cdn-cgi/l/email-protection/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

我从未见过以下语法(等待):

for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

这种语法是怎样的呢?

它是特定于 deno 还是在中找到的顶级等待this https://github.com/tc39/proposal-top-level-await#use-casesTC39 提案?

编辑:为什么可以使用outside of an async功能?


for await...of https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of语句用于迭代异步迭代器,并且serve返回一个异步迭代器,其中每次迭代都将是一个新的传入请求。

它是特定于 deno 还是在这个 tc39 中找到的顶级等待 提议?

不,它不是 Deno 特有的,它是不同的建议 https://github.com/tc39/proposal-async-iteration than top-level await.


这是一个简单的例子asyncIterator https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator也适用于浏览器(非 deno 独有)

const obj = {
   async *[Symbol.asyncIterator]() {
      for(let i = 0; i < 10; i++)
        yield new Promise(resolve => setTimeout(() => resolve(i), 100));
   }
};

(async() => {
  // You don't need the wrapper if the environment 
  // supports top-level await, e.g: Deno
  for await(const i of obj)
    console.log(`${i}`, new Date())

})();

编辑:为什么它可以在异步函数之外使用?

因为 Deno 支持top-level await https://github.com/tc39/proposal-top-level-await

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Deno 顶级等待 的相关文章

  • 使用日期类型将输入字段中的日期居中

    我想将日期居中input not input inside div 如果我进行居中 它将把日期居中于input因为有一个右侧面板用于根据日历选择日期 该面板根据输入宽度调整大小 用于演示的小代码片段 center text align ce
  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 在数组/对象中查找项目的最快方法

    在 Javascript AS3 中查找列表或对象中项目的索引的最快方法是什么 我对这两种语言都提出这个要求 因为这两种语言的语法相似 假设 myArray one two three myObject one 1 two 2 three
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 最小的 ExtJS 包是什么?

    有谁知道 Ext JS 2 2 所需的最少文件吗 我知道 ExtJS 网站有一个功能 build http extjs com products extjs build ExtJS ext js 的小版本 作为 ext all js 的替代
  • 通过 HTML5 文件和 URL API 正确创建和提供 PDF Blob

    好吧 假设我有文档数据存储在某处 让我们任意取this pdf http www grida no climate ipcc tar wg1 pdf tar 01 pdf 问题 1 我想要做的是对此 URL 进行 AJAX 调用 因为我需要
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • JointJS - 处理链接删除点击

    创建链接后 将鼠标悬停在其上会显示红色 X 以将其删除 单击此按钮将触发一系列事件 通过订阅 全部 活动收集 单元格 向下指针 链接 向下指针 cell pointermove x5 似乎可疑 单元格 指针向上 在浏览了文档并花费了太长时间
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • Relay 中的嵌套片段数据始终相同

    我是 Relay 新手 并且遇到了片段上嵌套数据的问题 当我在 graphiql 中进行测试时 以下查询返回正确的数据 因此我确信我的架构是正确的 viewer customers name billing address city 但是
  • 正则表达式 - 避免表达式中出现字符串

    我正在尝试创建一个应该匹配以下情况的正则表达式 如果单词完全匹配 first second third 那么匹配应该失败 但如果它周围有任何字符 那么应该匹配该字符串 我还需要避免字符串中的某些字符集 如果这些字符是字符串的一部分 则匹配结
  • 如何使用 selenium 获取 javascript 结果?

    我有以下代码 from selenium import selenium selenium selenium localhost 4444 chrome http some site com selenium start sel selen
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • chrome 扩展 - 将数据从后台传递到自定义 html 页面

    创建浏览器扩展 我必须从 background js 打开新选项卡并将 JSON 数据传递到这个新选项卡 在新选项卡中 我使用传递的 JSON 数据来操作 渲染 DOM 下面是我的 background js 的一部分 我在其中使用自定义
  • 在 中动态添加链接样式表 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 如何将链接
  • 我可以防止将 Leaflet 地图平移到世界边缘之外吗?

    有没有办法限制平移到世界边缘之外 在这幅画中 棕色是世界 灰色是虚空 我想让它不可能像这样平移 Leaflet 允许您控制地图抵抗被拖出边界的程度maxBoundsViscosity选项 值 0 到 1 将其设置为最大值会完全禁用拖动出界
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns
  • html5 canvas 使用图像作为蒙版

    是否可以使用具有形状的图像作为整个画布或画布内图像的蒙版 我想将图像放置在画布中 并在图像上添加蒙版 然后将其另存为新图像 您可以使用 source in globalCompositeOperation 将黑白图像用作蒙版 首先 将蒙版图

随机推荐

  • 用Matlab实现图像直方图

    我正在尝试在Matlab中实现 我知道有一个自定义函数可以实现它 灰度图像直方图 到目前为止我已经尝试过 function h histogram matlab imageSource openImage rgb2gray imread i
  • 如何指定R CMD执行目录?

    以前我可以通过以下方式从命令行启动 Rserve R CMD Rserve 在 Ubuntu 上升级到 3 0 2 后 我得到 usr lib R bin Rcmd 62 exec Rserve not found 我尝试过重新安装并手动启
  • 项目 Euler 7 Scala 问题

    我试图使用 scala 2 8 解决 Project Euler 问题 7 我实施的第一个解决方案大约需要 8 秒 def problem 7 Int var num 17 var primes new ArrayBuffer Int pr
  • 使用 Spring Boot、Spring Security 和 React 时发生 CORS 错误

    早上好 这两天我一直在解决这个问题 所以我决定发布一个关于它的问题 基本上我有一个 Spring Boot 项目 它通过 React JS 前端执行基本的 CRUD 操作 一切似乎都工作正常 直到我将 Spring Security 添加到
  • 使用 .NET 进行双向通信以进行通知的方法

    我有一个服务器 客户端项目 我使用 C 进行编码 WCF 作为服务器 我仅限于 HTTP 到目前为止对 wsdualhttpbinding 还没有运气 项目正在公司网络上运行 除了 WCF 双工之外 还有其他方法可以将通知从服务器发送到客户
  • 如何在推送时自动结帐?

    考虑以下情况 我有一个 git 存储库 foo git 其中包含 javascript 项目的代码 在这个存储库中有一个分支生产包含由网络服务器提供的代码状态 该服务器从以下位置获取代码 var www foo 该存储库是该项目的主存储库
  • 对于作为 Azure 应用服务 (P3) 托管的 .NET Core 2 Web api 的基准 RPS,我的期望应该是什么?

    我正在尝试衡量在 NET Core 2 中开发的 Web API 的基线 RPS 以下是迄今为止我遵循的步骤 从 Microsoft 的 VS 模板中生成了一个新的 空的 Web API 项目 添加了一个新的控制器 它执行基本的 你好 你的
  • Automake 将两个静态库合并为一个

    我正在尝试将预构建静态库中的符号包含到我正在构建的静态库中 然后 我正在构建的静态库将在可执行文件内部使用 我遇到的问题是我的静态库中从其他静态库获取了未定义的符号 这意味着我从预构建的静态库中需要的符号没有包含在我的静态库中 使用自动工具
  • 在 LWUIT 中拨打电话

    我有一个带有电话号码的文本字段 我想要做的就是当文本字段聚焦并按下呼叫按钮时 必须暂停应用程序并且应使用以下命令拨打文本字段的电话号码平台请求 http docs oracle com javame config cldc ref impl
  • MKOverlayView 和触摸

    我的地图上有一个自定义 MKOverlayView 我想检测触摸 但是 我似乎无法让覆盖层做出响应 我希望这会是愚蠢的事情 比如忘记将 userInteractionEnabled 设置为 YES 但是可惜 没有运气 目前 我的情况如下 m
  • 在 php 中处理数学方程

    用户可以输入他们喜欢的任何数学方程 带有一个变量 x 5 1 x 2 x 3 56 13 它们以字符串形式存储在数据库中 当检索它们时 我需要用 x 代替数字并检查方程的值 我怎么能这样做呢 我正在考虑编写一个解析器来解构字符串并将它们转换
  • 在C#中打开路径中有空格的Word文档

    我有这条路 path Cash Report 30 03 2012 01 11 07 Cash Flow Report Docx 当我使用下面的代码打开文件时 它会尝试打开每个单词 所以它会尝试打开 cash doc 然后打开 Report
  • 来自 GitHub 的桌面通知

    当我选择的项目出现新推送时 如何获得桌面通知 任何 RSS 阅读器都应该这样做 转到 GitHub 上的仪表板页面 其中显示 您的新闻源 右上角是带有文本 新闻源 的橙色 rss 图标 您可以订阅该图标
  • Python 3,PIL是Pillow的别名吗?

    Windows 7 64 位上的 Python 3 5 我很困惑 如果有人安装Pillow 那么必须使用被取代 卸载的图形库的名称PIL作为它的别名 根据枕头安装说明 http pillow readthedocs io en 3 3 x
  • 从 Storyboard 中初始化的 UIViewController 调用方法 - Objective C

    我是新来的Storyboarding在 Objective C 中 我需要调用方法UIVIewController 前Storyboarding我正在初始化UIViewController in AppDelegate或者只是在那里分配指针
  • 如何将Tomcat的端口从8080改为80?

    我想执行我的网络应用程序http localhost 1 前往conftomcat安装目录下的文件夹 e g C Tomcat 6 0 conf 2 编辑以下标签server xml file
  • 是否可以仅将一个类的 MediaTypeFormatter 更改为 JSON?

    我有一个 Web api 其中全局配置配置为使用 XmlMediaTypeFormatter 我的问题是我不会使用新的控制器扩展此 Web api 而是使用 JsonMediaTypeFormatter 是否可以仅将一个 API 控制器类的
  • 如何以编程方式从共享点文档库下载文件

    在按钮单击事件或链接按钮单击时 我想从共享点文档库下载文档并将其保存到用户的本地磁盘 请帮助我 如果您有任何代码示例 请分享 输出文件的直接链接的问题是 对于某些内容类型 它可能只是在浏览器窗口中打开 如果这不是所需的结果 并且您想要强制保
  • 如何存储 Websphere MQ 消息以实现持久性?

    Websphere MQ 消息存储在数据库还是文件系统中 我可以将其配置为使用 MySQL 吗 WebSphere MQ 持久性始终是分布式平台的本地文件系统 在大型机上 可以在具有耦合设施的 Sysplex 中使用 DB2 数据库 但对于
  • Deno 顶级等待

    正在阅读homepage https deno land 新的 JS 运行时 deno 我看到了下面的代码 import serve from https deno land email protected cdn cgi l email