使用回调函数Javascript在屏幕上延迟打印/重复数组元素
我正在尝试打印给定的数组单元格,每次打印之间每个元素有2秒的延迟 通过使用回调函数,但我无法使其工作。 取而代之的是,它会在2秒钟后将它们全部打印在一起 代码如下:使用回调函数Javascript在屏幕上延迟打印/重复数组元素,javascript,arrays,callback,settimeout,delay,Javascript,Arrays,Callback,Settimeout,Delay,我正在尝试打印给定的数组单元格,每次打印之间每个元素有2秒的延迟 通过使用回调函数,但我无法使其工作。 取而代之的是,它会在2秒钟后将它们全部打印在一起 代码如下: var words = ["horse","pig","fish","lion"] var time function display(callback){ time = setTimeout(typing, 2000); } function typing(){ for (var i=0; i<words
var words = ["horse","pig","fish","lion"]
var time
function display(callback){
time = setTimeout(typing, 2000);
}
function typing(){
for (var i=0; i<words.length; i++)
document.write(words[i])
}
display(typing);
function display(callback) {
time = setTimeout(typing, 1000)
}
function typing(a,b) {
var aInput = prompt("Please enter a input");
aInput = a
var bInput = prompt("Please enter b input");
bInput = b
if (a === int)
for (i=0; i<a.length; i++)
alert(b)
else
alert("Not valid Input")
}
display(typing);
var words=[“马”、“猪”、“鱼”、“狮子”]
变量时间
函数显示(回调){
时间=设置超时(键入,2000);
}
函数类型(){
对于(var i=0;i,从外观上看,你应该做这部分:
var aInput = prompt("Please enter a input");
aInput = a
var bInput = prompt("Please enter b input");
bInput = b
之前:
time = setTimeout(typing, 1000)
然后将a和b参数发送到:
typing(a,b)
如果你这样做,它应该会工作。从外观上看,你应该做这部分:
var aInput = prompt("Please enter a input");
aInput = a
var bInput = prompt("Please enter b input");
bInput = b
之前:
time = setTimeout(typing, 1000)
然后将a和b参数发送到:
typing(a,b)
如果你这样做,它应该会起作用。回答你的第一个问题。所有的单词都在2秒后打印出来,因为for循环不会在每个循环中等待setTimeout
的执行完成,因此它几乎立即运行所有的setTimeout
,每个单词都会等待2秒,显然是fi同时抛光。你可以这样改变它
var words=[“马”、“猪”、“鱼”、“狮子”]
函数显示(){
设计数器=0;
常量间隔=设置间隔(()=>{
文件.书写(文字[计数器++);
if(计数器===字.长度){
间隔时间;
}
}, 2000);
}
显示()
回答第一个问题。所有单词在2秒后打印,因为for循环不会在每个周期中等待setTimeout
的执行完成,因此它几乎立即运行所有setTimeout
并等待2秒,显然是在同一时间完成。您可以像这样把它弄得乱七八糟
var words=[“马”、“猪”、“鱼”、“狮子”]
函数显示(){
设计数器=0;
常量间隔=设置间隔(()=>{
文件.书写(文字[计数器++);
if(计数器===字.长度){
间隔时间;
}
}, 2000);
}
display();
第二个代码有一些问题:
您通过提示符
获取输入,因此无需将任何参数传递给键入
由于上述原因,a和b未定义。因此,aInput=a
和bInput=b
没有意义。相反,将aInput和bInput的值分别存储在a和b中
if(a===int)
语法错误。JavaScript中没有int这样的东西。如果要检查a是否是数字,请使用isNaN(a)
if语句
中的for循环
必须用{}包装,因为它有多行
这应该很好:
function display(callback) {
time = setTimeout(typing, 1000)
}
function typing() {
var aInput = prompt("Please enter a input");
var a = Number(aInput);
var bInput = prompt("Please enter b input");
var b = bInput;
if (!isNaN(a)){
for (var i=0; i<a; i++){
alert(b);
}
}
else {
alert("Not valid Input")
}
}
display(typing);
函数显示(回调){
时间=设置超时(键入,1000)
}
函数类型(){
var aInput=提示(“请输入输入”);
var a=数字(输入);
var bInput=提示(“请输入b输入”);
var b=投入产出;
如果(!isNaN(a)){
对于(var i=0;i而言,第二个代码有一些问题:
您通过提示符
获取输入,因此无需将任何参数传递给键入
由于上述原因,a和b未定义。因此,aInput=a
和bInput=b
没有意义。相反,将aInput和bInput的值分别存储在a和b中
if(a===int)
语法错误。JavaScript中没有int这样的东西。如果要检查a是否是数字,请使用isNaN(a)
if语句
中的for循环
必须用{}包装,因为它有多行
这应该很好:
function display(callback) {
time = setTimeout(typing, 1000)
}
function typing() {
var aInput = prompt("Please enter a input");
var a = Number(aInput);
var bInput = prompt("Please enter b input");
var b = bInput;
if (!isNaN(a)){
for (var i=0; i<a; i++){
alert(b);
}
}
else {
alert("Not valid Input")
}
}
display(typing);
函数显示(回调){
时间=设置超时(键入,1000)
}
函数类型(){
var aInput=提示(“请输入输入”);
var a=数字(输入);
var bInput=提示(“请输入b输入”);
var b=投入产出;
如果(!isNaN(a)){
对于(变量i=0;isetTimeout)(键入,2000)表示在调用setTimeout
后2秒运行键入
。因此,元素在2秒后一起打印。您必须在循环中调用seTimeout
函数,以便每2秒打印数组元素。是否必须使用回调函数?此回调函数应包含哪些内容是吗?回调甚至没有被使用。你可以使用它或…取出它?不幸的是,回调必须被使用。它不必包含特定的内容。我两个月前开始编写代码,我知道有些事情可能不完美,我很抱歉。setTimeout(键入,2000)表示在调用setTimeout
后2秒运行键入
。因此,元素在2秒后一起打印。您必须在循环中调用seTimeout
函数,以便每2秒打印数组元素。是否必须使用回调函数?此回调函数应包含哪些内容是吗?回调甚至没有被使用。你可以使用它或者…取出它?不幸的是,回调必须被使用。它不必包含特定的内容。我两个月前开始编写代码,我知道有些事情可能不完美,我很抱歉。我想这是某种家庭作业?下一部分可能是在你收到回调之前ack工作正常。我假设这是一个家庭作业?下一部分可能是让回调正常工作。必须有一个回调函数,但thanks@ChrisA.有一个回调函数,虽然是匿名的。必须有一个回调函数,但是thanks@ChrisA.有一个回调,alt尽管是匿名的。