私は次の機能を持っています:
$.ajax({
url: "../../getposts.php"
}).done(function(posts) {
var postsjson = $.parseJSON(posts);
});
postsjson
関数の外で変数を使用するにはどうすればよいです.done()
か、または変数をグローバルに宣言するにはどうすればよいですか?
ajaxが完了したときではなく、後で配列を使用したいので、別の関数に渡すことはできません。
私は次の機能を持っています:
$.ajax({
url: "../../getposts.php"
}).done(function(posts) {
var postsjson = $.parseJSON(posts);
});
postsjson
関数の外で変数を使用するにはどうすればよいです.done()
か、または変数をグローバルに宣言するにはどうすればよいですか?
ajaxが完了したときではなく、後で配列を使用したいので、別の関数に渡すことはできません。
ajax 呼び出しの外部で変数を定義するだけの場合:
var postsjson;
$.ajax({
url: "../../getposts.php"
}).done(function(posts) {
postsjson = $.parseJSON(posts);
});
その後、屋外で使用できます。同様に、 を離れるvar
とグローバルに宣言されますが、これはお勧めできません。
SLaks が指摘したように、AJAX 呼び出しから取得したデータをすぐに使用することはできません。done
関数が実行されるのを待ってから、関数が有用なものに初期化されます。
すばらしいことに、Ajax 関数から返される promise はさまざまな方法で使用できます。
var XHR = $.ajax({
url: "../../getposts.php"
});
function somethingElse() {
XHR.done(function(posts) {
var postsjson = $.parseJSON(posts);
});
}
--
function myAjax(url) {
return $.ajax({
url: url
});
}
function doSomething(url) {
var postsjson = myAjax(url).done(parsePosts);
}
function parsePosts() {
return $.parseJSON(posts);
}
doSomething("../../getposts.php");
等...
ajax を呼び出す前に、変数を宣言する必要があります。
簡単なサンプル:
var postsjson;
$.ajax({
url: "../../getposts.php"
}).done(function(posts) {
postsjson = $.parseJSON(posts);
});
console.info(postsjson); // Use here for example