for await …of 表达式的煎蛋实现小demo
码农天地 -偶然间看到一个小例子:
import { serve } from "https://deno.land/std@0.69.0/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
req.respond({ body: "Hello Worldn" });
}
查了查资料有了下面这个小demo:
const simulateDelay = (val, delay) =>
new Promise((resolve) => setTimeout(() => resolve(val), delay));
class RandomNumberGenerator {
[Symbol.asyncIterator]() {
return {
next: async () => {
return simulateDelay({ value: Math.random() }, 200); //return the value after 200ms of delay
},
};
}
}
const rand = new RandomNumberGenerator();
(async () => {
for await (const random of rand) {
console.log(random);
if (random < 0.1) break;
}
})();
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。