Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
myCallback(response);
}
});
return result;
}
function myCallback(response) {
// Does something.
}
Просто используйте набор:
>>> l = set()
>>> l.add(1)
>>> l.add(2)
>>> 1 in l
True
>>> 34 in l
False
То же самое работает для списков:
>>> ll = [1,2,3]
>>> 2 in ll
True
>>> 23 in ll
False
Редактировать: комментарий @ bholagabbar ниже, что временная сложность для in
проверок в списках и кортежах - среднее значение O (n) (см. здесь python docs здесь ), тогда как для множеств оно находится в среднем O (1) (в худшем случае также O (n), но очень необычно и может произойти только в том случае, если __hash__
выполняется плохо).