主要关注FS,对于大多数函数,似乎有三种风格可供选择:
异步是使用系统资源的更好的方式,但是,如果我已经在异步函数中,并且无论如何都在等待每个调用,那么这和仅仅使用同步调用没有任何区别,对吗?在我看来,这只是一个内置的等待声明。
不过,我不知道异步是如何在js/节点中实现的。如果我一开始就在异步函数中,那么使用异步函数有什么好处?(不包括并行运行异步任务时的场景)
发布于 2020-02-20 22:21:41
我们应该决定只根据函数内部发生的事情来使用async函数,而不是由谁调用它。调用方不影响函数是否应该是async。
创建函数async的原因
await。而且,这基本上是因为在函数前面使用async关键字的原因。
async函数不是(或对async函数的常见误解)的东西:
异步是使用系统资源的最佳方式,
不知道你在说什么。异步函数允许您以非阻塞的方式运行操作,这样Javascript中的主线程可以在异步操作运行时执行其他操作,但这不是async函数能够实现的。这是由异步操作启用的。这两者是不同的。
如果我已经在一个异步函数中,并且无论如何都在等待每个调用,那么这和仅仅使用同步调用没有任何区别,对吗?
不正确。使用await与返回承诺的函数一起执行当前函数(立即返回承诺),但允许主Javascript线程执行其他事情、服务其他请求等.使用同步代码将被阻塞,并且不会允许主线程执行其他事情,从而破坏服务器的可伸缩性。
在我看来,这只是一个内置的等待声明。
阻塞、同步代码会影响操作期间可能运行的所有其他内容。这与使用await不一样。
https://stackoverflow.com/questions/60329167
复制相似问题