为什么在 mdn 的这个例子中,每个内部函数都将先前的(父)函数参数作为输入?
why in the this example from mdn each inner function takes previous (parent) function parameters as input?
在 MDN 的这个例子中,如果我们使用老式的异步回调来类比吃披萨的步骤,他们试图展示什么是异步链。
chooseToppings(function(toppings) {
placeOrder(toppings, function(order) {
collectOrder(order, function(pizza) {
eatPizza(pizza);
}, failureCallback);
}, failureCallback);
}, failureCallback);
为什么在每个步骤中前面的函数参数都作为参数传递给内部函数?为什么他们不在每个函数中提供任何代码?
下面的代码更好吗?
chooseToppings(function(toppings) {
//some work with toppings
placeOrder(function(order) {
//some work with order
collectOrder(function(pizza) {
eatPizza(pizza);
}, failureCallback);
}, failureCallback);
}, failureCallback);
这里有两个主要观点:
toppings
不是 chooseToppings
的参数,而是它的结果值。它不是 return
值,而是异步传递给 chooseToppings
接收的回调。所以 chooseToppings
产生 toppings
,placeOrder(toppings)
产生 order
而 collectOrder(order)
产生 pizza
.
- 每个函数都依赖于前一个函数的结果。你不能在不知道浇头的情况下下订单。这些依赖关系通过传递值而不是上下文来明确表示。如果您没有这些依赖项,您可以一次调用所有函数,而无需等待异步结果。
Why they don't provide any code inside each function?
因为这些只是示例函数,所以它们的实现并不重要。您可以假设 placeOrder
完成了所有 // work with toppings
,无论那是什么 - 本指南只关心如何按顺序调用这些异步函数。
在 MDN 的这个例子中,如果我们使用老式的异步回调来类比吃披萨的步骤,他们试图展示什么是异步链。
chooseToppings(function(toppings) {
placeOrder(toppings, function(order) {
collectOrder(order, function(pizza) {
eatPizza(pizza);
}, failureCallback);
}, failureCallback);
}, failureCallback);
为什么在每个步骤中前面的函数参数都作为参数传递给内部函数?为什么他们不在每个函数中提供任何代码? 下面的代码更好吗?
chooseToppings(function(toppings) {
//some work with toppings
placeOrder(function(order) {
//some work with order
collectOrder(function(pizza) {
eatPizza(pizza);
}, failureCallback);
}, failureCallback);
}, failureCallback);
这里有两个主要观点:
toppings
不是chooseToppings
的参数,而是它的结果值。它不是return
值,而是异步传递给chooseToppings
接收的回调。所以chooseToppings
产生toppings
,placeOrder(toppings)
产生order
而collectOrder(order)
产生pizza
.- 每个函数都依赖于前一个函数的结果。你不能在不知道浇头的情况下下订单。这些依赖关系通过传递值而不是上下文来明确表示。如果您没有这些依赖项,您可以一次调用所有函数,而无需等待异步结果。
Why they don't provide any code inside each function?
因为这些只是示例函数,所以它们的实现并不重要。您可以假设 placeOrder
完成了所有 // work with toppings
,无论那是什么 - 本指南只关心如何按顺序调用这些异步函数。