私はnode.jsにTwitterボットゲームを構築しています。私は、同期関数(getImage
)を持つasync.waterfall
を持っているTwitterのストリームを開くstreamOn
のスクリプトを持っています。 getImage
は、スクリプトがトリガーされたときに301の応答を返すことがあります。 streamOn
は引き続き開いたままですが、プレーヤーはエラーについて知らないので、返される画像はありません。エラーが発生した場合、async.waterfallを再起動するにはどうすればよいですか?
async.waterfall
は、プレーヤーがまだ画像を取得するためにエラーが発生した場合、ステップの最初から「再試行」するにはどうすればよいですか?ここで
はasync.waterfall
次のとおりです。これは私がそれは次のようになり想像ものです
function getImage() {
var http=require('http'), imageBuffer;
http.get(
'http://www.kame.net/img/kame-anime-small.gif',
function(res) {
var body=new Buffer(0);
if (res.statusCode!==200) {
return console.error('HTTP '+res.statusCode);
}
res.on('data', function(chunk) {
body=Buffer.concat([body, chunk]);
});
res.on('end', function() {
imageBuffer=body;
});
res.on('error', function(err) {
console.error(err);
});
}
);
}
厳密に言えば、301はエラーではありません。あなたのURLを更新する必要があると伝えています。なぜあなたはリダイレクト応答を得ているのか調べましたか? – mdickin
@mdickinはい、ありがとうございます。画像ソースはAPIを使用してBingの検索結果から来ているので、動作していない時間よりもずっと時間がかかっていますが、たびに301レスポンスが返されます。私は正直なところ、スクリプトが301を返す前にスクリプトを実行する必要があります。 – filmplane
レスポンスの 'Location'ヘッダ値に対してGETリクエストを再実行することを検討しましたか?画像がどこに移動したのかが分かるはずです。 – mdickin