私はまだ Promise に慣れていません ( jQuery ではなくPromises/A+のように)、古いクライアント側のコードの一部を Promise を返すように変換して、特にコールバックをアップストリームに渡す代わりにダウンストリームを使用できるようにしたいと考えています。 、Web ストレージと AJAX に関するすべて。
問題は、私が使用している AJAX ライブラリ ( Oboe.then
) です。jQuery スタイルの API がありますが、メソッドはありません。つまり、自分自身を構築して返す必要new Promise
がありますが、次のアプローチは最適ですか? 関数をラップせずにstaticPromise.resolve
を使用して何かを行うことはできますか? Promise.reject
私の例は次のとおりです。
古いコード
function makeRequest(uri, callback) {
var request = ajax(uri);
request.fail(function(err) {
// handle failure
});
request.done(function(res) {
callback(res);
});
}
新しいコード
function makeRequest(uri) {
return new Promise(function(resolve, reject) {
var request = ajax(uri);
request.fail(function(err) {
reject(err);
});
request.done(function(res) {
resolve(res);
});
});
}
より良いコード?
function makeRequest(uri) {
var request = ajax(uri);
request.fail(function(err) {
// handle failure
});
request.done(function(res) {
// handle complete
});
// this won't work without third-party .then support
return Promise.resolve(request);
}
(ネイティブの Promise と polyfill のみを使用してこれを行うつもりですが、これに対するヘルパーを備えたライブラリがあれば、それらの実装を見て喜んでいます。)