Javascript 基于 JSON 的数据回调函数

Javascript JSON-based data callback function

提问人:questionMan 提问时间:1/21/2023 最后编辑:questionMan 更新时间:1/21/2023 访问量:158

问:

实现一个函数 fetchDataForUser,该函数从远程 JSON API 获取数据,然后返回其中的一部分。

由于这是一个网络调用,因此它需要是一个异步函数,并通过回调返回数据。

基于 JSON 的数据将从此 URL 和其他类似 URL 中获取:https://gist.githubusercontent.com/kvirani/f7d65576cc1331da1c98d5cad4f82a69/raw/4baad7566f0b6cd6f651c5d3558a015e226428b5/data.json

回调应使用两个参数进行调用:

  1. 错误:如果请求返回时出现错误,则将其传递到此回调。否则,请将其设置为 null
  2. data:如果没有错误,这应该是表示给定用户名的输赢的对象。如果出现错误,则应将其设置为 null。

使用请求库 (https://www.npmjs.com/package/request) 获取数据。 请求库已安装在此项目中,您可以要求和使用它。

    const fetchDataForUser = function(url, username, callback) {
    // IMPLEMENT ME
    };

如何正确实现上述功能?

数组 json 回调 javascript 对象

评论

0赞 jabaa 1/21/2023
您有具体问题吗?为什么“有人能帮我吗?”不是一个实际的问题?
0赞 questionMan 1/21/2023
如何正确实现功能?const fetchDataForUser = function(url, username, callback) { // 实现我 };
0赞 Barmar 1/21/2023
return key退出函数,并且永远不会调用回调。你为什么要这样做?要求中没有任何内容说您应该返回任何东西。
1赞 jabaa 1/21/2023
Stack Overflow 不是免费的代码编写服务。您有具体的问题或疑问吗?

答:

0赞 Barmar 1/21/2023 #1

客人所需的信息位于酒店内。没有必要循环,因为用户名是一个键,你可以只使用'data.users[username]。data.users

当你找到匹配的用户时,你不应该从函数返回,你应该调用回调函数。

const fetchDataForUser = function(url, username, callback) {
  request(url, (err, res, body) => {
      if (err) {
        callback(err, null);
      } else {
        const data = JSON.parse(body);
        callback(null, data.users[username]);
      }
    };
  });
};