Самое простое решение - создать функцию 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);
});
Сохранить счетчик:
#!/bin/sh
while ! test -d /somemount/share/folder
do
echo "Waiting for mount /somemount/share/folder..."
((c++)) && ((c==10)) && break
sleep 1
done
Вы также можете использовать цикл for
и выйти из него с успехом:
for try in {1..10} ; do
[[ -d /somemount/share/folder ]] && break
done
Проблема (которая существует и в других решениях тоже) заключается в том, что после окончания цикла вы не используете t знать, как он закончился - был ли найден каталог или был ли счетчик исчерпан?
Я бы прокомментировал, но у меня недостаточно очков для этого. Я все равно хочу внести свой вклад. Таким образом, это заставляет его работать, даже если цикл 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