문제

ECMAScript 6 약속을 사용하기 위해 노드 .js 스크립트를 설정하려고합니다.노드 스크립트에서 필요한 작업을 수행 할 수 있습니다.이 작업은 많은 경우 외부 서버를 가져와야합니다 (일시적으로 비용이 많이 듭니다).나는 추측한다).

어떻게 응답 객체를 마지막으로 약속의 PROMACODISETAGCODE로 전파하고 요청에 응답 할 수 있습니까?

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);
});
.

도움이 되었습니까?

해결책

단순히 Route Handler 내에 서비스 호출을 넣어야합니다.

app.get("/",function(req,res){
    myService().then(function(result){
        res.write(result);
        // res.end();
    });
});
.

동기 코드와 마찬가지로 컨텍스트에서 기능을 호출하는 것 :

var data = myService();
doSomethingWith(data);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top