什么是 JavaScript Promise? 简要解释。
无论你是否计划进行任何异步操作,掌握 JavaScript 中的异步操作方法都是一项非常实用的技能。Promise 正是解决异步问题的一种方式。
JavaScript Promise 本质上是代表异步执行代码成功或失败的对象。这听起来可能没什么大不了的,因为它属于 JavaScript 中一些比较隐蔽的问题。
使用事件监听器是监控异步操作的一种方法,但有时监听器会过早触发,导致事件发生错误。这时就需要用到 Promise 了。
它们并非什么新鲜事物,只是经过了改进。JavaScript 的 Promise 机制已经在各种 API 中存在多年了。即使是 jQuery 也有类似的机制,叫做 deferred,尽管它们的工作方式并不完全相同。
Promise 解决的问题是确保在另一个操作完成后,在正确的时间执行代码。例如,当您在网站上看到加载图标时,后台正在进行一系列操作。可能正在进行数据库调用或运行一些计算,以确定页面上要显示哪些内容。
当所有后台操作完成后,你会看到你期待的画面,或者看到一个错误。这时 Promise 就派上用场了。Promise 会等待所有后台操作按照各自的时间节点完成,然后执行相应的代码。
因此,所有操作完成后,Promise 将返回成功或失败的结果。根据你希望代码如何运行,你可以设置回调函数来处理成功或失败的情况。这样,无论后端发生什么,你都可以确保用户屏幕上看到的内容。
Promise 还能捕获导致失败的整个过程中发生的所有错误,这对于调试非常有用。JavaScript Promise 最显著的特性之一就是它们的“thenable”(可执行 then 操作)。
这意味着你可以在 Promise 的末尾添加 then() 方法,并使用其结果运行全新的异步进程。你可以根据需要将多个 Promise 串联起来,它们都会异步执行代码。
以下是承诺的图片:
正如本例所示,Promise 会一直等待所有等待的任务完成,直到它们全部完成才会执行任何操作。完成任务后,它会执行一个回调函数,该函数会使用这些任务的结果。之后,你可以使用 `then()` 函数继续执行其他任务。
呼!以上就是 JavaScript Promise 的简要概述。与其他一些概念(例如多态和继承)不同,Promise 很难在不使用代码的情况下解释清楚,但希望你对它们的工作原理、用途以及使用原因有了更深入的了解。
嘿!你应该在推特上关注我,原因你懂的:https://twitter.com/FlippedCoding
文章来源:https://dev.to/flippedcoding/what-are-javascript-promises-super-high-level-explanation-1g75