に私のスクリプトを任意の値を返しません:約束はjqueryの
var testApp = (function($){
var data = [{
"layout": "getSample",
"view": "conversations",
"format": "json",
}];
var Data = 'default';
function ajaxCall(opt) {
return new Promise(function(resolve, reject) {
jQuery.ajax({
method: "POST",
url: localStorage.getItem("root")+"/index.php",
"data": opt,
error: function() {
alert('error');
},
success: function(result) {
console.debug(result);
resolve(result);
}//end success
});//end ajax
});//end promise
}
return {
render: function(opt) {
if(typeof opt === 'object') {
var list = {
data : [opt]
}
//here I'm passing list object's data to be used in ajaxCall function.That's the reeason I used call method. It's data is passed from another page.
ajaxCall.call (list, list.data).then(function(v) {
console.log("v "+v); // nothing happens yet...expecting for the success object to be passed here
}).catch(function(v) {
//nothing to do yet
});
}
}
};//end return
})(jQuery);
は、Ajaxとの約束を使用する正しい方法ですか?
呼ばajaxCall.call (list, list.data).then(function(v) {
console.log("v "+v); // doesn't return anything
}).catch(function(v) {
//nothing to do yet
});
:How do I return the response from an asynchronous call?
'jQuery.ajax()' *すでに*約束を返します。それ以外は、あなたのコードが達成すべきものが不明です。それを正しく字下げして始め、その目的、起こることを期待すること、代わりに何が起こるのかについての説明を追加してください。また、そのコメントアウトされたforループのような未使用のコードを削除してください。コード行が必要な場合、またはそうでない場合は、あなたの心を固めます。 – Tomalak
@Tomalak、私は心を作り、コードを編集しました。 – 112233