这是一段代码示例:
do
{
line=gets(smil);
if (line===-1){console.log("Abort");callback(-1);}
console.log("line= "+line);
}while(line.search("<video")===-1);
第一个输出顺利,但突然,我得到了
line= -1
TypeError: Object -1 has no method 'search'
gets是一个自定义函数,如果出错,则返回字符串或-1。
我尝试使用==而不是===,但它只是做同样的事情。
我试图用undefined替换gets的返回-1,但我得到了
line= undefined
TypeError: Cannot call method 'search' of undefined
代替。
为什么不执行?
编辑: 试过
var pline
do
{
pline=gets(smil);
if (pline===-1){console.log("Abort");callback(-1);}
console.log("line= "+pline);
}while(pline.search("<video")===-1);
为了避免覆盖另一个变量,得到了相同的结果
答案 0 :(得分:1)
这是一个两个问题。
1st - 您正在line
之后覆盖变量do
。
这就是你得到Uncaught TypeError: Object -1 has no method 'search'
将该行更改为parsed_line = gets(smil); //also never forget semicolons
2nd - search
不是String的函数,你想要indexOf()
函数。
所以将while(line.search())
更改为while(line.indexOf())
。
我为你做了一个小提琴demonstrates it here
答案 1 :(得分:0)
尝试添加休息时间。
do
{
line=gets(smil);
if (line===-1){
console.log("Abort");
callback(-1);
break;
}
console.log("line= "+line);
}while(line.search("<video")===-1);