Как передать параметры функции обратного вызова (JavaScript)?

Дело в том, что мне нужно посылать асинхронные запросы для неопределенного числа объектов одновременно (то есть - первый запрос пошел, не ожидая ответа сервера пошел второй запрос). На каждый объект в случае успеха сервер должен выслать ответ, а браузер вставить его в определенное место.

Но ведь эта самая вставка делается при помощи функции обратного вызова, а ей невозможно приписать параметры! Так бы я мог передать объект запроса в качестве параметра данной функции, а на основе этого уже разбираться - какой ответ сервера куда вставлять. А сейчас, без параметров, у меня первый ответ вставляется, а второй уже нет.

При этом, если второй запрос выслать только по окончании работы первого, то все будет ОК!

Так вот вопрос - как передать функции обратного вызова параметры? Или как создать множество объектов XHR неопределенного размера?

Буду рад любой информации!
Мы платим до 300 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
ЛУЧШИЙ ОТВЕТ (1)
!
Знаток (397)
Кто сказал, что нельзя передавать параметры. Используйте анонимные функции. Примерный код такой:

req.onreadystatechange = Update(req,param1,param2,...); //здесь req объект запроса, который возвращает функция типа createRequest

А саму функцию Update (обратный вызов) пишем так:

function Update(XHR,param1,param2,...)
{
return function() //анонимная функция
{
... //Ваши действия. Работать можете прямо с XHR - он хранит указатель на КОНКРЕТНЫЙ объект запроса.
XHR.onreadystatechange = null; //обрываете привязку к функции обратного вызова. Строка обязательная, иначе работать не будет.
}
}


Ну вот как-то так :)
ПОХОЖИЕ ВОПРОСЫ