-1
これは複数回尋ねられましたが、$.when
を使用して$.ajax
を実行して問題が発生しています。
以下のサンプルコードでは、最初のajaxを$.when()
に、次に$.ajax
を.done()
の内側に実行したいとします。
var api = {
getFoo: function(callback) {
$.when(this.getBar()).done(function() {
chrome.storage.local.get(['bar'], function(data) {
// omitted some code here for brevity
$.ajax({
type: 'GET',
url: /api/foo/,
dataType: 'json'
}).done(function(result) {
console.log('success', 'went here!');
}).fail(function(request) {
console.log('failed', 'went here!');
});
});
});
},
getBar: function() {
chrome.storage.local.get(['data1'], function(data) {
if(typeof data['data1'] !== 'undefined') {
// omitted some code here for brevity
$.ajax({
type: 'POST',
url: /api/bar/,
data: data['data1'],
dataType: 'json'
}).done(function(result) {
console.log('success', 'went here!');
}).fail(function(xhr, status, error) {
console.log('failed', 'went here!');
});
}
});
}
}
私は、コードを実行した
、二$.ajax
は最初
$.ajax
が終了するのを待たずに、すぐに実行されます。どうか、誰かが正しい方法で私をリダイレクトできますか?
'' $の.when'は、引数としての約束を期待 'this.getBar()約束を返さない...何も返さない! – charlietfl