Web 平台 APIs

Deno 旨在使用 web 平台的 API(如 fetch),而不是新发明一个有意义的特有 API 。这些 API 通常遵循规范,而且应该与 Chrome 和 Firefox 中的实现相匹配。在某些情况下,因为 Deno 有着不同的安全模式,所以稍微偏离规范是有意义的。

以下是 Deno web 平台 API 的实现列表:

fetch API

概述

fetch API 可以用来发送 HTTP 请求。 它是按照 WHATWG fetch 规范 中的规定实现的。

你可以在 MDN 中找到关于 fetch API 的文档。

偏离规范

Fetching local files

As of Deno 1.16, Deno supports fetching file: URLs. This makes it easier to write code that uses the same code path on a server as local, as well as easier to author code that works both with the Deno CLI and Deno Deploy.

Deno only supports absolute file URLs, this means that fetch("./some.json") will not work. It should be noted though that if --location is specified, relative URLs use the --location as the base, but a file: URL cannot be passed as the --location.

To be able to fetch some resource, relative to the current module, which would work if the module is local or remote, you would want to use import.meta.url as the base. For example, something like:

const response = await fetch(new URL("./config.json", import.meta.url));
const config = await response.json();

Notes on fetching local files:

CustomEvent, EventTargetEventListener

概述

DOM 事件 API 可以用来调度和监听应用程序中发生的事件。 它是按照 WHATWG DOM 规范 中的规定实现的。

你可以在 MDN 里找到关于 EventTarget API 的文档。

偏离规范


Typings

用 TypeScript 实现定义的 web APIs 能够在 lib.deno.shared_globals.d.ts lib.deno.window.d.ts 文件中查看。

关于 workers 的具体定义可以在 lib.deno.worker.d.ts 文件中查看。