今、JSONデータを返す2つの関数があります。Sychronous JsonとAsychonrous Jsonのリターン
searchAjax(url: any): any
{
let new_data: any;
return $.ajax({
url: url,
type: 'post',
dataType: "json",
async: false
}).responseText;
}
search(): Promise<any>
{
return this.http.get('app/php/search.php')
.toPromise()
.then(response => {
//console.log("search");
console.log(response.json());
response.json();
})
.catch(this.handleError);
}
は今searchAjax
は正しく私にJSONデータを返しますが、search
はちょうどconsole.log(respon.json())
が実際に正しいJSONオブジェクトを印刷していても、私はnullを返しながら、それは、同期です。
JSONデータを非同期的に取得する方法があるのか、データを同期的に取得するだけで十分なのか疑問に思っていました。
あなたは* *同期のAjaxを使用することはありません。この機能が存在しないことを忘れてください。 – Tomalak
トマラクが言ったこと。同期は一般的に最後の手段とみなされます。つまり、ユーザーが何もできないようにブラウザをロックし、アニメーションは停止し、物事をクリックできません。それを使う理由はほとんどありません。 – ADyson