小编And*_*ols的帖子

理解延迟执行链的语法

我正在学习JavaScript - 真正学习JavaScript.我来自PHP背景,所以一些JavaScript概念对我来说仍然是新的,尤其是异步编程.这个问题可能已经多次回答,但我找不到答案.这可能是因为我甚至不知道如何通过展示一个例子来提出问题.所以这里是:

从npm 使用deferred包时,我看到以下示例:

delayedAdd(2, 3)(function (result) {
  return result * result
})(function (result) {
  console.log(result); // 25 
});
Run Code Online (Sandbox Code Playgroud)

他们将此称为链接,它实际上是有效的,因为我目前正在使用此代码来检查承诺何时解决或被拒绝.即使他们称之为链接,它也会让我想起像Swift那样的尾随闭包.

我真的不明白这是什么类型的链接,因为我们有一个函数调用,然后紧接着,括在括号中的匿名函数.

所以我想我有两个问题.

  1. 这是什么模式?
  2. 它是如何工作的?这可能是一个很复杂的问题,但我想知道某些事情是如何运作的,所以当有人问我这件事时我可以给他们一个详细的解释.

这是delayedAdd函数:

var delayedAdd = delay(function (a, b) {
  return a + b;
}, 100);
Run Code Online (Sandbox Code Playgroud)

它使用以下功能:

var delay = function (fn, timeout) {
  return function () {
    var def = deferred(), self = this, args = arguments;

    setTimeout(function () {
      var value;
      try {
        value = fn.apply(self, args));
      } catch (e) {
        def.reject(e);
        return; …
Run Code Online (Sandbox Code Playgroud)

javascript node.js deferred

28
推荐指数
5
解决办法
2380
查看次数

标签 统计

deferred ×1

javascript ×1

node.js ×1