- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我发现,nodeJS/ExpressJS 作为 ReactJS 软件的 API 端点的最佳实践是仅使用异步函数进行 mysql 查询等。
但我真的不明白它应该如何工作以及为什么如果我不使用它它会降低性能。
请想象以下代码:
API 端点“/user/get/1”从 id 为 1 的用户获取所有数据并以 json 内容进行响应。如果我使用异步,则不可能响应查询收集的信息,因为当函数运行到结束时它没有得到满足。
如果我将它包装在 Promise 中,并等到它完成,它就像同步函数一样 - 不是吗?
请为我描述一下等待异步函数或直接使用同步函数有什么区别。
感谢您的帮助!
最佳答案
If i wrap it in a Promise, and wait until its finished its the same like a synchronus function - isnt it?
不,不是。 JavaScript 中同步函数和异步函数之间的区别恰恰在于,异步代码被安排为只要有可能就运行,而不是立即立即运行。换句话说,如果您使用同步代码,您的整个 Node 应用程序将停止从数据库中获取数据的所有操作,并且在完成之前不会执行任何其他操作。相反,如果您使用 Promise 和异步代码,则虽然在完成之前不会收到响应,但在异步代码获取数据时,Node 应用程序的其余部分仍将继续运行,从而允许同时进行其他连接和请求。
这里使用异步并不是为了让单个响应更快;而是为了让响应速度更快。这是关于在等待某个响应时允许处理其他请求。
关于javascript - 为什么在 Node js 中到处使用异步函数是最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59200288/
我有一个图书馆,我计划以 dex 形式使用。我想直接针对这个库进行编译,但不导出它。相反,我想将它放在我的资源中并使用类加载器实际实例化它。 这是我的图书馆: public class Foo {
我是一名优秀的程序员,十分优秀!