gpt4 book ai didi

javascript - 在 deno 框架中等待没有异步

转载 作者:行者123 更新时间:2023-12-04 00:56:47 25 4
gpt4 key购买 nike

Deno 刚刚发布 v1.0 .

当我检查 getting started 时公会我显示了一些不寻常的代码。

import { serve } from "https://deno.land/std@0.50.0/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 循环,则等待没有异步。

所以我想知道,javascript async/await 和 deno await 是相同的还是不同的?

最佳答案

Deno 支持 top-level await目前处于第 3 阶段。

Top-level await enables modules to act as big async functions: With top-level await, ECMAScript Modules (ESM) can await resources, causing other modules who import them to wait before they start evaluating their body.

top-level await 允许您使用异步获取的数据初始化模块。

// my-module.js
const res = await fetch('https://example.com/some-data');
export default await res.json();
// some module
import data from './my-module.js';
console.log(data); // { "some": "json" }

If you see for loop there is await without async.

请记住,使用 awaitfunction 仍然需要 async 关键字,即使 top-level await 受支持。

function foo() { // async is needed
const res = await fetch('https://example.com/api/json')
console.log(res);
}

foo();

上面的代码片段仍然会抛出错误。


引用资料:

关于javascript - 在 deno 框架中等待没有异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61816979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com