【发布时间】:2018-05-03 04:02:31
【问题描述】:
我正在从一个看起来像这样的 API 调用一个函数。问题是它从来没有真正从我的服务器端代码调用回调。我需要它来调用该回调(cb)并用它发送一部分数据块,但不知道如何去做。
pwPOST: function (options, data, cb) {
var postData = JSON.stringify(data);
console.log("Options: ", options);
console.log("PostData: ", postData);
var req = https.request(options, (res) => {
console.log('STATUS:', res.statusCode);
console.log('HEADERS:', JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY:', chunk);
});
res.on('end', function () {
console.log('No more data in response.');
});
});
req.on('error', function (e) {
console.log('Problem with request:', e.message);
});
console.log("PostData: ", postData);
req.write(postData);
req.end();
}
我只需在 res.on() 函数中添加 cb(chunk) 即可使其正常工作,但我不确定这是最佳实践。
【问题讨论】:
-
必须更容易地使用为您处理所有这些的
request()库。它会累积响应并为您调用回调。 -
@jfriend00 这段代码不是我写的。它是我正在使用的 API 的一部分,我不想完全改变它。
-
按原样,代码从不调用
cb- 所以,这毫无意义 -
@JaromandaX 这就是我的帖子的重点......
-
所以,API 最初设计得很糟糕,采用了从未使用过的 cb 参数,您反对更改 API?零意义
标签: javascript node.js express callback