1 分間に 60 回の API 呼び出ししかできないオブジェクトがあります。だから私がしたいのは、関数呼び出しが来て、それを配置してキューに追加し、より都合の良い時間に関数を再度呼び出すことができないことを知っているときです。
これは私がそれを修正するために考えた方法です
var API_caller = function(){
this.function_queue = [];
};
API_caller.prototype.make_api_call = function(){
if(this.can_make_call()){
this.make_call();
} else {
// If I cant place an API call then add
// the function to the function queue
this.function_queue.push(this.make_api_call);
}
};
API_caller.prototype.queue_call = function(){
// remove function from queue and call it
var func = this.function_queue.shift();
func();
}
make_api_call()
これは、パラメーターのない関数では問題なく機能しますが、パラメーターがある場合はどうなりますか
API_caller.prototype.make_api_call = function(data){
if(this.can_make_call()){
this.make_call();
} else {
// If I cant place an API call then add
// the function to the function queue
this.function_queue.push(this.make_api_call(data));
}
};
ただし、この場合、make_api_call(data)
プッシュされる前に評価され、エラーの原因function_queue
とfunc
なる関数を保持しなくなりqueue_call()
ます。
どうすればこれを回避できますか?