所以我开始使用 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/