javascript - 是否可以在 JavaScript 中递归调用 'this' ?

标签 javascript asynchronous

是否可以在异步函数中递归调用该函数的无名回调函数?

这是伪代码,但我的想法是我想重新调用失败的 http 请求。

function(err, res) { //parent callback
    request.get(URL, function(err, res) {
        if (err == 209) { //call the nameless parent function but how?
        }
    });
}

最佳答案

我认为没有办法用无名函数来做到这一点,但为什么不给它一个名字呢?

function doRequest(err, res) {
  request.get(URL, function(err, res) {
      if (err==209) {
          doRequest();
      }
  });
}

您仍然可以将此函数用作内联回调,就像使用匿名函数一样,它只是碰巧有一个名称。例如:

setTimeout(function doRequest(err, res) { ... }, 200 );

或者,如果您直接调用它,您可以在 IIFE 内创建它以避免将其名称泄漏到您当前的范围内。

关于javascript - 是否可以在 JavaScript 中递归调用 'this' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18062936/

相关文章:

c# - 使用 C# 5 异步等待在多个游戏帧上执行的内容

javascript - 是否可以在 Js 中使用 await 而不使用 async

javascript - react : update component after an async event not connect to the component

node.js - Node JS Express 处理多个请求

javascript - 需要有关 JS 循环的帮助

javascript - pageY 更新 onScroll

javascript - 获取表单中相对于按钮的输入值

javascript - 如何使用javascript检测图像内图标的宽度?

javascript - 无法使用 $el 在 Vue js 中获取 clientHeight

c# - 等待句柄和 Xamarin 表单