javascript - 仅使用 requirejs 通过管道传送 json 主体

标签 javascript json requestjs

所以我开始使用 requestjs ,我对此很满意,但我想知道是否有某种方式可以以某种方式进行管道传输,就像您对 Promise 所做的那样:

function foo(url) {
  return request({ "url": url, "json": true })
}
let result = foo("https://jsonplaceholder.typicode.com/posts/1")
result.pipe(process.stdout)
result.on('data', console.log)
  • 使用 pipe 我无法访问对象本身,因此我不能只传输主体
  • 并且不遵守我解析 json 响应的规范

所以我不能使用其中任何一个来仅访问我收到的 json。当然,我可以使用 JSON.parse,但我正在寻找一些更简单的方法来操作响应(类似于 promise ),而且我觉得我错过了大局。

最佳答案

您需要使用流有什么原因吗?您始终可以将请求包装在 promise 中。

这是非常高的水平,但希望这能让您走上正确的道路。

function makeRequest(params) {
  return Promise((resolve, reject) => {
    request(params, (err, response) => {
      if (err) {
        return reject(err);
      }
      return resolve(response);
    };
  });
}


const params = {
  url: 'foo.com',
  method: 'GET',
  json: true,
};

makeRequest(params)
  .then(response => {
    if (response.statusCode === 200) {
      return Promise.resolve(response.body);
    } else if (response.statucCode === 404) {
      const err = {
        message: 'Not Found',
        code: 404,
      };
      return Promise.reject(err);
    }
  })
  .then(body => // do something fun with data)
  .catch(err => // handle error);

关于javascript - 仅使用 requirejs 通过管道传送 json 主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102845/

相关文章:

javascript - 将问题与 Bluebird promise 绑定(bind)

javascript - localStorage 派生变量在最初相减时充当整数,但在最初相加时充当字符串

javascript - 如何设置 ASP.NET API/AngularJS 项目

java - 有没有可以序列化Proxy对象的JSON库?

node.js - Node.js 中 ForEach 内的异步请求

javascript - 如何在 Array.prototype 和 Object.prototype 上的 javascript 中定义方法,使其不会出现在 for in 循环中

php - 通过 JSON、JQUERY、PHP 的图像预加载器

node.js - 8192 NodeJS 请求中的数据大小有限

javascript - 如何查找表单参数的存储位置并在请求中使用它们

javascript - 如何使数组在Javascript中的不同函数下可访问?