我正在尝试设置一个 Node.js 脚本来使用 ECMAScript 6 承诺。我能够在 Node 脚本中完成我需要的工作,这需要多次获取外部服务器(因此在时间上很昂贵),但无法响应客户端,因为 Promises 构造导致对响应的引用丢失(所以我猜)。
如何将 Response 对象传播到最后的 Promisesthen()
并回复请求?
var http = require("http");
var Promise = require('es6-promise').Promise;
//...
var promise = new Promise(function(resolve, reject){
//...
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
buffer += data.toString();
});
res.on('end',function(d){
//...stuff done with buffer...
return resolve(0);
});
});
req.end();
});
promise.then(function(i){
//...expensive work on array...
return Promise.all(myArrayData);
});
promise.then(function(result){
//...want to reply to the request here, e.g.,...
res.write(result);
});