掌握JavaScript中的回调

2023-02-05 0 894

掌握JavaScript中的回调

甚么是反弹?

反弹是两个表达式,用于另两个表达式的模块,这种表达式就能初始化另两个表达式。听出来有点儿繁杂,并非吗? 让他们降解呵呵……

介绍表达式在JavaScript中是怎样运转的

在 JavaScript 中,函数依照您初始化的次序运转,而并非依照您表述它的次序运转。

表述表达式:

function first() { return “I am first”; } function second() { return“I am second”; }

以恰好相反的次序初始化表达式:

second(); first();

别的林美珠被初始化?

表述的次序是 first – second; 在继续执行结论中, 具体来说输入的是 “I am second”;

不过,有时候很多情况下他们想掌控表达式的运转最佳时机,因此以某一的次序初始化它是不如的。下列示例。

示例1

表述表达式:

function displayResults(results) { //许多标识符 document.getElementById(“results”).innerHTML = results; } function googleSomething(keyword) { //许多标识符 return searchResults; }

按需次序初始化表达式:

Let searchKeyword = googleSomething(“How to JavaScript”); displayResults(searchKeyword);

为甚么上例并不总是有用?

因为您将需要初始化所有表达式,当您有很多表达式时,它会变得混乱,您可能最终会得到不需要或忘记的额外表达式。 还有其他原因吗? 看下面的示例。

示例2

定义表达式:

function displayResults(results) { ///许多标识符 document.getElementById(“results”).innerHTML = results; }function googleSomething(keyword) { ///许多标识符 displayResults(searchResults); }

只初始化搜索表达式:

googleSomething(“How to JavaScript”);

为甚么示例 2 并不总是有用?

因为您无法阻止 googleSomething 表达式初始化 searchResults,所以searchResults表达式将始终在其中运转。

在这种情况下反弹有何帮助?

您能使用反弹表达式代替手动编写表达式,当你需要继续执行改表达式时,修改初始化逻辑。 简而言之,如果你不运转第两个表达式,第二个表达式将永远不会运转。

表述表达式:

function displayResults(results) { //许多标识符 document.getElementById(“results”).innerHTML = results; } function googleSomething(keyword, **displayResults**) { //许多标识符 displayResults(searchResults); }

只初始化搜索表达式 :

googleSomething(“How to JavaScript”, **displayResults**);

googleSomething 表达式中的第二个模块 displayResults 是两个反弹! 当将表达式作为反弹传递时,您不需要初始化它,只需传递名称即可,不需要括号。

甚么时候需要使用反弹表达式?

具体来说,您需要介绍甚么是异步表达式。 关于它的内容有很多,但我会尽量简单准确地解释它。

JavaScript 中有许多类型的表达式是异步的——它不会与整个标识符同步运转。 他们将需要继续执行一段时间,这个过程时并行的,而并非停止等待继续执行逻辑完成。

让他们举两个愚蠢的例子,比如麦当劳——当你点餐时,你等待它备餐。与此同时,其他人也在你等待的时候下订单。 队列中的人不会一直等待,等到你点餐,直到你吃完饭,直到你离开麦当劳。 这其中,为每个客户服务需要花费很多时间,对吗?

这并非两个很好的例子,但我认为它在某种程度上和异步是相似的。 在这种情况下,您的订单准备功能将是异步的。 在人们下单或等待的同时,食物准备功能正在继续执行中。

这种情况下的反弹表达式是甚么?

反弹表达式被称为反弹是有原因的! 该表达式说,“好了叫我”。 最后说呵呵,他们准备食物的异步表达式已经继续执行完毕,能给你两个结论了。 因此您想在收到此结论之前运转另两个表达式,两个将初始化您的名字和订单名称的反弹表达式!

但是您不希望只有在您的食物准备好时才有人叫您的名字,对吗?

为此,您将把这个“叫我的名字”功能附加到食物准备中。 所以当食物准备功能完成时,它会运转两个喊你名字的反弹表达式!

简而言之,反弹表达式是另两个表达式的模块,仅在第两个表达式继续执行完毕后才继续执行。

关于反弹还有很多其他有趣的事情,但让他们在这里停下来介绍呵呵基本知识。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务