いくつかのajax呼び出しを使用する際にエラーが発生しました。これを配列に入れて、すべて終了したらキャプチャが必要です。 私のコードはこれです:エラー配列Ajaxが "when"を使用することを約束します
var userId=[1,2,3];
var ajaxR = [];
for (var us in userId) {
var usId = userId[us];
ajaxR.push($.ajax({
type: "GET",
async: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "myurl",
data: { id: usId }
}));
}
$.when.apply($, ajaxR).always(function (e) {
//Here I have the error but arguments it's ok
var objects = arguments;
});
私はこのコードをdebbugとき、私は$ .whenにエラーが発生している機能:
Uncaught TypeError: Cannot read property '0' of undefined
更新:
私の完全な機能は、それは次のとおりです。
function UserFromWS(userId) {
var users = [];
var ajaxR = [];
for (var us in userId) {
var usId = userId[us];
ajaxR.push($.ajax({
type: "GET",
async: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "url",
data: { id: usId }
}));
}
$.when.apply($, ajaxR).always(function (e) {
var obj = arguments;
return obj;
});
// return users;
}
0123を入力するとエラーが消えます。関数の最後にはがあります。しかし、それは返すobjの前に空のユーザー配列を返すことを終わらせます。私は、このように関数を呼び出す必要があります。
var allUsers = UserFromWS ([1,2,3]);
機能が$.when
約束でobj
返す必要があります。
を見たときに、 'はconsole.log(引数)が'あなたに何を与えないことを知っていますか? – mehulmpt
'var userId = [1,2,3;]'これは無効です。 –
'in'を使って配列をループすることはできません.ES5では' of'を使ってループすることができます。 –