私は理解しようとしています$.when(...).then(...).done(...)
。これは単なるテストです。
HTML:
<p id="phrase"></p>
<button id="btn">get phrase</button>
JavaScript:
var p = $('#phrase');
function displayResult(o){
console.log(o);
p.append(o + ' ');
};
function getSubject(){
console.log('getSubject');
return $.get(
'sujet.js', //returns "the quick brown fox"
displayResult
);
}
function getVerb(){
console.log('getVerb');
return $.get(
'verbe.js',//returns "jumps over"
displayResult
);
}
function getComplement(){
console.log('getComplement');
return $.get(
'complement.js', //returns "the lazy dog"
displayResult
);
}
function close(){
p.append("!!!");
}
function load(){
$.when(getSubject())
.then(getVerb)
.then(getComplement)
.done(close);
}
$('#btn').click(load);
私が理解しているように、次のようにする必要があります。
- request for
sujet.js
で、段落に文字列を表示します。 - request for
verbe.js
で、段落に文字列を表示します。 - request for
complement.js
で、段落に文字列を表示します。 - 「!!!」を追加 段落に。
取得するだけsujet.js
です。が呼び出されることはなく、およびdisplayResult
に渡される関数も呼び出されません。then
done
だから、私はおそらく何かを誤解しました。
この回答から例を取得しました。
編集
$.when
私の問題は、 orとは関係のない解析エラーでした$.then
。修正すると、残りは期待どおりに機能しました。ただし、それがどのように機能するかをよく説明しているので、私は megar の答えを受け入れたものとしてマークしました。