如果函数返回错误,则不再执行其他代码。我需要重试这个功能,直到成功。我该怎么办?
... // API request...
function(error, something) {
if (!error) {
something = true;
// Etc...
}
else {
// Code to try again.
}
}
答案 0 :(得分:2)
我更喜欢让自己调用一个函数,这样你就有了更多的自由
const repeat = () => {
// Your code
if(error) {
repeat()
}
}
然后你可以各种各样的铃声。你的例子是
(function repeat() {
// Your code
if(error) {
repeat()
}
})()
如果你只运行一次,那就做一个自执行功能。
(function repeat() {
// Your code
if(error) {
setTimeout(() => {
repeat()
}, 100)
}
})()
因为我们使用一个自称调用的函数,所以我们可以使用setTimeout
Servlet.service() for servlet Faces Servlet threw exception: java.lang.NumberFormatException: For input string: "size"
这使得代码可以暂停运行无停止。
答案 1 :(得分:0)
试试这个
function(error, something) {
do {
// do your stuff here
}while(error)
}
对于旅游案例,您可以这样做:
function(error, something) {
if(!error){
// this code is executed once
}
while(error){
// do your stuff here
}
}
在错误变为假之前执行您想要的操作
或者你可以使用
function Test(error, something) {
if(!error){
// your code that you want to execute it once
}
else {
// do stuff
Test(error, something); // re-call the function to test the if
}
}
它将在第一次执行
之前测试错误更多示例take a look here
对于最后一条评论,你可以这样做(没有循环):
return "<span class=\"label label-default\">Default</span>";