如何通过Javascript实现单线程“阻塞io”模型?

问题描述 投票:0回答:1

我们都知道nodejs服务器是基于“单线程非阻塞io模型”工作的。

如果您是一名讲师,您将如何向您的学生解释“非阻塞 io 模型”和高效示例的需求?

所以我想模拟一个“假服务器”,它按顺序接受请求,一个客户端请求将阻止下一个请求。

如何通过 Javascript 实现单线程“阻塞 io”模型,其中客户端请求必须相互等待?

(作者:js)

node.js blocking
1个回答
0
投票

Javascript I/O 通常使用 Promise 或回调来处理。执行读取的函数将传递一个在读取成功时要调用的函数,以及一个在读取失败时要调用的函数。该函数将立即返回,但会启动一些操作,以便在读取完成后调用所提供的函数之一。

较新版本的 Javascript 通过让 I/O 函数返回“promises”而变得更加方便,可以使用以下语法进行链接:

someReadFunction(...whatever).then(
  (data)=>someWriteFunction(data)
).then(
  ...etc.
).catch(
  (message)=>console.log("Oh noes!",message);
);

这种语法只能在声明为“异步”的函数中使用,并且还有各种其他限制,但它仍然比一堆嵌套回调函数看起来干净得多。

© www.soinside.com 2019 - 2024. All rights reserved.