У меня есть некоторые функции, как этотКак вернуть данные из обещание
function getIndex(name) {
var deferred = $.Deferred();
var index = 0;
$("#dropDown option").each(function() {
if ($(this).text() === name) {
index = this.index + 1;
deferred.resolveWith(this, {result: index });
return deferred.promise();
}
});
deferred.resolveWith(this, { result: index });
return deferred.promise();
}
И тогда я звоню функцию:
getIndex("Hello World").done(function(result) {
alert (result);
});
Однако содержание результата не определено.
Я неправильно использую отложенную логику? Что тогда будет правильным?
пытаются использовать 'deferred.resolve' вместо' resolveWith' –
Почему вы используете обещание? Обещания хороши для асинхронной логики, но в вашем коде нет асинхронного. – abl
@abl Вы имеете в виду, что я могу сделать var index = getIndex («Hellow World»), а затем сделать предупреждение (результат) без проблем? – user3587624