_resolve
機能が最初に解決されダミー jQueryの繰延オブジェクトの種類を作成するためのショートカットです。彼らはむしろ例えば_createResolvedPromise
のようにそれをより直感的に呼び出すべきだったが、私たちはいつもいくつかの文字を保存するために使用していた。
一般に、この手法は、遅延を返す関数がある場合に必要ですが、場合によっては値を初期値として返すことができます。この場合、呼び出し側は遅延を期待しているため、値を返すことはできません。そのため、遅延オブジェクトを作成して直ちにその値で解決する必要があります。これらの遅延オブジェクトをという定数の遅延オブジェクト程度と呼びます。
apply
は、に渡されるオプション引数を使用してresolve
を呼び出すために使用されます。これらの引数は、後ほどdone
コールバックに渡されます。ドキュメントhereを参照してください。
遅延オブジェクト上でpromise()
を呼び出すことは、それを約束オブジェクトにラップすることにほかならず、消費者は例えばresolve
を呼び出すことができません。ドキュメントhereを参照してください。
たとえば、ajaxで何かを取得したいと仮定し、結果をキャッシュします。
var _cachedResult;
function getResults() {
if (_cachedResult) {
// for THIS line they made the _resolve shortcut, with which I could write _resolve(_cachedResult)
return $.Deferred().resolve(_cachedResult).promise();
}
return $.ajax(...).done(function(result) {
_cachedResult = result;
});
}
発信者はこのように使用できます。
getResult().done(function(result) {
// do something with result, which maybe came from the cache
});
希望します。