虽然这样可行,但打印i从0到9
for (var i=0; i < 10; i++ {
function myFunction (callback) {
setTimeout(function () {
callback('Answering your phone call');
}, 10000);
}
myFunction(function (message) {
console.log("i = " + this.i + " , message = " + message);
}.bind({i: i}));
}
这不起作用,并将i打印为10,10,10,... 10(10次)
for (var i=0; i < 10; i++ {
// There is an externalFunction, which is a Cordova call, that does call the callBack function with a message.
externalFunction(function (message) {
console.log("i = " + this.i + " , message = " + message);
}.bind({i: i}));
}
我做错了什么? 我无法控制externalFunction,并且我希望在callBack返回时保留调用#。
我尝试过各种版本的闭包,绑定并无法使其工作。
答案 0 :(得分:0)
但是,经过一小时的调试后,了解到Cordova层在创建单独的运行时会话时会覆盖'this'值,并且最终会调用回调,所使用的值就是值。< / p>