异步编程和async/await之间有什么区别吗?实际上,我知道异步/等待,我想找出异步编程和异步/等待之间的区别,但我找不到正确的答案。甚至我不知道两者是相同的还是有任何区别。因此,我在这里提出这个问题。
brvekthn1#
Async/await只是在nodejs中使用异步操作编程的一种方法,它是Javascript语言的一个特性,在某些情况下可以简化承诺编程。在nodejs中还有其他异步编程方法,使用普通回调或事件,或者只是使用.then()和带承诺的.catch(),所有这些方法都是在我们甚至在Javascript语言中使用async/await之前使用的。
.then()
.catch()
async/await
mrfwxfqh2#
异步编程是一种使程序能够启动可能长时间运行的任务并在该任务运行时仍然能够响应其他事件的技术来源:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Introducing有人可能会说,除非您的代码被设计为允许多个任务同时运行,否则您并不是在真正地编写异步代码。如果您有一个使用fetch()检索URL内容的任务,这将是一个可以在您执行其他javascript时运行的任务的示例。但是,也可以用承诺(直接或通过使用async/await syntactic sugar),这样就不会有两个任务同时运行,因为从来没有进行过导致任务在后台运行的浏览器调用。一个示例是编写一个阻塞队列,其中使用async/await来更清晰地构建代码。代码仍然是单线程的,并且两个任务决不会同时执行。底线是,你可以使用promise来编写异步代码,但是你实际上永远不会同时执行多个任务,除非你要求浏览器在后台做一些事情(或者使用web工作者)。
2条答案
按热度按时间brvekthn1#
Async/await只是在nodejs中使用异步操作编程的一种方法,它是Javascript语言的一个特性,在某些情况下可以简化承诺编程。
在nodejs中还有其他异步编程方法,使用普通回调或事件,或者只是使用
.then()
和带承诺的.catch()
,所有这些方法都是在我们甚至在Javascript语言中使用async/await
之前使用的。mrfwxfqh2#
异步编程是一种使程序能够启动可能长时间运行的任务并在该任务运行时仍然能够响应其他事件的技术
来源:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Introducing
有人可能会说,除非您的代码被设计为允许多个任务同时运行,否则您并不是在真正地编写异步代码。
如果您有一个使用fetch()检索URL内容的任务,这将是一个可以在您执行其他javascript时运行的任务的示例。
但是,也可以用承诺(直接或通过使用async/await syntactic sugar),这样就不会有两个任务同时运行,因为从来没有进行过导致任务在后台运行的浏览器调用。一个示例是编写一个阻塞队列,其中使用async/await来更清晰地构建代码。代码仍然是单线程的,并且两个任务决不会同时执行。
底线是,你可以使用promise来编写异步代码,但是你实际上永远不会同时执行多个任务,除非你要求浏览器在后台做一些事情(或者使用web工作者)。