Limit bash до цикла повторных попыток [duplicate]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
7
задан nu11p01n73R 28 November 2014 в 15:43
поделиться

3 ответа

Сохранить счетчик:

#!/bin/sh

while ! test -d /somemount/share/folder
do
    echo "Waiting for mount /somemount/share/folder..."
    ((c++)) && ((c==10)) && break
    sleep 1
done
9
ответ дан anubhava 26 August 2018 в 03:57
поделиться

Вы также можете использовать цикл for и выйти из него с успехом:

for try in {1..10} ; do
    [[ -d /somemount/share/folder ]] && break
done

Проблема (которая существует и в других решениях тоже) заключается в том, что после окончания цикла вы не используете t знать, как он закончился - был ли найден каталог или был ли счетчик исчерпан?

2
ответ дан choroba 26 August 2018 в 03:57
поделиться

Я бы прокомментировал, но у меня недостаточно очков для этого. Я все равно хочу внести свой вклад. Таким образом, это заставляет его работать, даже если цикл while вложен в другой цикл. перед перерывом переменная c сбрасывается на ноль. кредиты @anubhava, которые придумали оригинальное решение.

#!/bin/sh

while ! test -d /somemount/share/folder
do
    echo "Waiting for mount /somemount/share/folder..."
    ((c++)) && ((c==10)) && c=0 && break
    sleep 1
done
2
ответ дан Jan K. 26 August 2018 в 03:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: