Я хочу подождать, пока мое значение не вернется в java-скрипте.Как сделать функцию wait до возвращаемого значения?
я попытался ниже код он не работает для меня
код:
calculate().done(function(result) {
alert(result);
});
Я хочу подождать, пока мое значение не вернется в java-скрипте.Как сделать функцию wait до возвращаемого значения?
я попытался ниже код он не работает для меня
код:
calculate().done(function(result) {
alert(result);
});
Если высчитывает ваша функция, вы можете использовать отложенный объект. Через 2 секунды выполняемая функция должна срабатывать.
var calculate = function() {
var deferred = new $.Deferred();
var test_data = "Hello World!"
// SIMULATE SOME TIME TO PROCESS FUNCTION
setTimeout(function() {
// This line is what resolves the deferred object
// and it triggers the .done to execute
deferred.resolve(test_data);
}, 2000) // AFTER 2 SECONDS IT WILL RETURN
return deferred.promise();
}
calculate().done(function (result) {
alert(result)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Предполагая, что простой код.
Попробуйте так: -
function calculate(callback)
{
var a = 1+2;
console.log(a);
//Don't forget to give the calculated value to the callback function
callback(a); //Once you are done do `callback()`
}
calculate(function(result)
{
alert(result);
});
Мне очень нравится синтаксис OPs. Почему бы нам не показать, как можно вызвать обратный вызов, используя синтаксис '.done'? – evolutionxbox
@evolutionxbox Раньше я использовал свой код только выше. Я никогда не использовал обратный вызов с синтаксисом '.done'. :( – Shrabanee
Aw. Иногда вы не можете передавать обратный вызов в качестве аргумента. В этих случаях синтаксис '.done' был бы полезен. – evolutionxbox
Вы можете использовать вместо этого обещания.
function calculate() {
return new Promise((resolve, reject) => {
var a = 1+2;
console.log(a);
resolve(a)
})
}
calculate().then(function(res){ console.log(res)})
Будет работать только с AngularJS. – Gopal00005
Это будет работать с ecmascript 6. и будет работать в любом контексте – Abiodun
Можете ли вы показать еще какой-нибудь код? И некоторый рабочий код для проверки – Shrabanee
Что такое 'calculate()'? Что такое 'done()'? Вы используете библиотеку? – evolutionxbox
Это именно то, что функции JavaScript выполняют в общих чертах, потому что JavaScript в основном предназначен для синхронного и однопоточного. Чтобы иметь возможность использовать асинхронные функции и несколько потоков, вам нужно делать очень конкретные вещи - не делайте их, если они вам не нужны. –