如果错误,JS再试一次

时间:2015-09-27 09:38:00

标签: javascript node.js function

如果函数返回错误,则不再执行其他代码。我需要重试这个功能,直到成功。我该怎么办?

... // API request...

function(error, something) {
    if (!error) {
    something = true;
    // Etc...
    }
    else {
        // Code to try again.
    }
}

2 个答案:

答案 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>";