我有一个具有多个输入的javascript函数,此函数首先检查是否满足某些条件,否则,它会将此函数的执行延迟到下一个循环,直到符合条件。
function controller(obj1, obj2, obj3){
if(!obj3.hasValue) {
_.defer(controller, arguments);
return;
}
//do something
}
但是,当下次由_.defer触发控制器时,整个参数数组将分配给obj1。 obj2和obj3未定义。是否有一种干净的方法使输入保持独立,就像第一次调用控制器一样?
答案 0 :(得分:1)
试试这个
User::with('order_product.order')->where('id', $usersid)->get();
答案 1 :(得分:0)
这样可以解决问题:
function controller(obj1, obj2, obj3){
if(!obj3.hasValue) {
_.defer(controller, ...arguments);
return;
}
//do something
}
JSFiddle示例:https://jsfiddle.net/amvpkg4g/
function controller(obj1, obj2, obj3){
console.log('obj1: ' + obj1, 'obj2: ' + obj2, 'obj3: ' + obj3);
}
var arguments = [1, 2, 3];
_.defer(controller, ...arguments);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js" ></script>