1

ノードリクエストモジュールを使用してサードパーティサービスからデータを取得し、このデータを関数から文字列として返そうとしています。私の認識はrequest()、あなたができるので、読み取り可能なストリームを返すということでしrequest(...).pipe(writeableStream)た-私は思った-私ができることを意味します

function getData(){
    var string;

    request('someurl')
        .on('data', function(data){
             string += data;
        })
        .on('end', function(){
            return string;
        });
}

しかし、これは実際には機能しません。request() またはノードストリームが実際にどのように機能するかについて、私は間違った認識を持っていると思います。誰かがここで私の混乱を解消できますか?

4

2 に答える 2

1

What I get is you want to access string later and you thought the request would return a completed string. If so, you can't do it synchronously, you have to put your code to process the completed string in the end event handler like this:

function getData(){
    var string;

    request('someurl')
        .on('data', function(data){
             string += data;
        })
        .on('end', function(){
            processString(string);
        });
}
getData();
于 2014-06-29T20:04:00.133 に答える