javascript - 使用请求并让回调在函数内工作的异步调用

标签 javascript node.js api asynchronous request

我在网络方面的经验不是很丰富,我正在尝试在类中进行简单的 api 调用。我遇到了新人面临的非常经典的回调问题,虽然有大量关于如何处理此逻辑的示例,但我很难在类中实现它。我正在使用request 。显然,下面没有任何作用,特别是与 myBody 相关。 ,但我添加它是为了展示在担心异步调用之前我如何逻辑地思考它。

const request = require('request);

class GetData{
  constructor(){
    this.getData();
  }

  reallyGetData(){
      var myData = this.getdata;
      return myData;
  }

  getData(){
    //var myBody;
    request({'url':`https://somewebsite.com/things.json`, 'json': true }, function (error, response, body) {
        console.log('error:', error); // Print the error if one occurred
        console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received

        // Successfully returns body as expected
        console.log("From inside getData: " + body);
        //myBody = body;
        });
    //return myBody;
    }
}

我发现解释如何在 getData 范围之外获取正文的最有用的链接是 this one .

但是,我对 Node (和 JavaScript)还很陌生,而且我似乎无法获得添加回调函数的语法。我从示例中尝试的所有内容都是无效语法,因此当我尝试添加类似于以下内容的回调函数时:

getData(function(result) {
    console.log(result);
}

我不知道如何在类中实现这个逻辑。

最佳答案

getData() 应声明为将函数视为“一等公民”。它也可以称为函数指针。

getData(callback) {
    ...

    callback(result);
}

调用它时,您将使用

getData(function(result) { ... });

关于javascript - 使用请求并让回调在函数内工作的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57312135/

相关文章:

JavaScript/JQuery/HTML - 将一个脚本的输出用作另一个脚本中的变量

javascript - 有没有办法将 promise 返回到 .catch 和 .then

mysql - promise 自定义方法

javascript - 隐藏客户端 API 调用

javascript - 这段jquery代码的含义

javascript - Handlebars.js 每个带有 if 条件的助手

javascript - 如果输入元素具有相同的名称、不同的索引、相同的后缀,则迭代数组

javascript - 我刚刚使用 Node.js 实现了什么?

php - 创建具有多个数据库表的 json API

javascript - 使用 REST API 的下拉列表未显示(在控制台日志中显示)