我正在创建一系列功能。
var wrapFunction = function(fn, context, params) {
return function() {
fn.apply(context, params);
};
}
var sayStuff = function(str) {
//do work & return something
return str;
}
var fun1 = wrapFunction(sayStuff, this, ["Hello, world!"]);
que = []
que.push(fun1);
现在我正在这样做:
var current = que.shift()
current();
这很好用,但是有办法调用que.shift&将所有函数一直运行到我的sayStuff
函数;以便
current === 'Hello, world!'
我尝试了(que.shift())();
,但它并没有触发整个周期。
答案 0 :(得分:2)
(que.shift())();
return
来电的价值为fn.apply
, return fn.apply(context, params);
应该有效:
return
答案 1 :(得分:1)
您应该在匿名函数中添加var wrapFunction = function(fn, context, params) {
return function() {
return fn.apply(context, params); // <-- Insert return here
};
};
:
que.shift()(); // "Hello, world!"
然后,
select
PetID,
min(case when ColumnID = 1 then Value end) as Name,
min(case when ColumnID = 2 then Value end) as Type,
min(case when ColumnID = 3 then Value end) as Color
from @Temp
group by PetID