私は、より多くの関数と少ないループを使用して、より機能的な方法でコードを作成する方法を学びたいと考えています。私はconnectBingを呼び出す間にタイムアウトを実装したい。私は変数を使用せず、繰り返しの間に1秒のタイムアウトを得ることが可能かどうか疑問に思っていました。私のコードは現在動作していますが、私はそれを書くことなく他の方法を探しています。setTimeoutと約束を使用して、このJSコードをより機能的にするにはどうすればよいですか?
これは私のコードです:
// MAIN
getAllPosts().then((posts) => {
posts
.forEach((post, i) => {
setTimeout(() => {
connectBing(anchorText,console.log).then()
} ,i * 1000)
})
// CONNECT TO BING WITH KW AND DO SOMETHING
function connectBing(anchorText,doSomethingWithBing) {
var deferred = q.defer();
request('https://www.cnn.com/search?q=' + anchorText, function (error, response, body) {
error ? console.log('error:', error) :
console.log('statusCode:', response && response.statusCode);
(doSomethingWithBing) ? doSomethingWithBing(body) : "You didn't give connectBing anything to do!"
})
return deferred.promise
}
あなたが現在あなたはあなたが求めているものを確認してください....私秒のタイムアウトがない得る反復間の1秒間のタイムアウトを取得いけないことを書いている途中... –
あなたは何をしようとしていますか?ここで、1kクエリがあった場合、1k秒間に1kクエリが生成されます。私の理解では、サーバーを迷惑させず、より高いレートで処理を続けるための並行モデルを探しています。 –