Я предполагаю, что пропущенный '//post to .php
' выглядит примерно так:
$.post('...php', { ... }, function(data) {
if (data.added) ...
Ответ AJAX обрабатывается функцией обратного вызова , которая выполняется асинхронно.Другими словами, returnArray
заполняется задолго после возвращения addActivity
.
Операторы return returnArray;
бесполезны, поскольку вы возвращаете значение из обратного вызова , а не из addActivity
.Обратный вызов вызывается не вашим кодом, а XHR (в другом контексте выполнения ), и его возвращаемое значение отбрасывается.
Чтобы правильно передать ваши данные обратно в асинхронном стиле, нам нужнонастроить ваш код.
function addActivity(contactNameSelected, username, callback) {
$.post('...', { ... }, function(data) {
var returnArray=[];
if(data.added)
{
...
}
else
{
...
}
callback(returnArray);
});
}
addActivity(contactNameSelected, username, function(response) {
if(response[0])
{
...
}
else
{
...
}
});