var delayTime = 2000;
for(var i = 0; i<this.textToWrite.length; i++){
setTimeout(
(
function (s){
return function () {
this.writeText += s;
console.log(this.writeText);
}
}(this.textToWrite[i])
), delayTime)
delayTime += 2000;
}this.writeText有一些问题。它是全局变量,但是当我注释+=的行时,我有一个未定义的值.(我将writeText: string = "“globaly)设置为this.writeText引用全局变量吗?如何在本例中访问全局变量?我需要在2s延迟的情况下从textToWrite对象到writeText。
发布于 2017-09-12 16:52:13
问题可能是你使用了虚词。
setTimeout(
((s) => {
return () => {
this.writeText += s;
console.log(this.writeText);
}
}(this.textToWrite[i])
), delayTime)另一种方法是如果它的全局变量为:
setTimeout(
((s) => {
return () => {
writeText += s;
console.log(this.writeText);
}
}(this.textToWrite[i])
), delayTime)发布于 2017-09-12 16:56:46
只使用箭头函数
settimeout(x => {
console.log(x);
}, 1000);不是这样的,它不会接受外部参数。
settimeout(funtion(x) {
console.log(x);
}, 1000);https://stackoverflow.com/questions/46181360
复制相似问题