PromiseはよくAPIを使います
6166 ワード
1.Promise钾then
2.Promise荍catch
4.Promise.reject
5.Promise.all
6.Promise.race
参考住所:JavaScript Promiseミニブック(中国語版)
promise.then(onFulfilled, onRejected);
例:Promise葃thenvar promise = new Promise(function(resolve, reject) {
resolve(" then ");
});
promise.then(function(value) {
console.log(value);
}, function(error) {
console.error(error);
});
このコードはpromiseオブジェクトを作成し、OnFulfilledとonRejecedを処理する関数を定義して、このpromiseオブジェクトに戻ります.このpromiseオブジェクトは、reolveまたはrejectに変更された時にそれぞれ登録されたコールバック関数を呼び出します.(1)handlerが正常値に戻ると、この値はpromiseオブジェクトに転送されます.(2)定義されたhandlerに異常が発生した場合、この値はpromise対象のonRejeced方法に伝達されます.2.Promise荍catch
promise.catch(onRejected);
promise.then(undefined, onRejected)
に相当する構文糖.例:Promise荍catchvar promise = new Promise(function(resolve, reject) {
resolve(" then ");
});
promise.then(function(value) {
console.log(value);
}).catch(function(error) {
console.log(error);
});
3.Promise.resovePromise.resolve(promise);
Promise.resolve(thenable);
Promise.resolve(object);
例:Promise.resovevar taskName = "task1";
asyncTask(taskName).then(function(value) {
console.log(value);
}).catch(function(error) {
console.error(error);
});
function asyncTask(name) {
return Promise.resolve(name).then(function(value) {
return "Done! " + value;
})
}
受信したパラメータによって、異なるpromiseオブジェクトが返されます.(1)プロミセオブジェクトパラメータを受信した場合:戻るか、それとも受信したプロミセオブジェクト(2)がthenableタイプのオブジェクトを受信した場合:新しいプロミセオブジェクトを返します.このオブジェクトが一つのthenメソッド(3)で受信したパラメータが他のタイプの場合(JavaScriptペアやnullなどを含む):このオブジェクトを値とする新規プロミセオブジェクトを返します.4.Promise.reject
Promise.reject(object)
例:Promise.rejectvar r = Promise.reject(new Error("error"));
console.log(r === Promise.reject(r)); // false
var r = Promise.resolve("test");
console.log(r === Promise.resolve(r)); // true
Promise.resoveとは違って、Promise.rejectが受信したパラメータがpromiseオブジェクトであっても、この関数は新たなpromiseオブジェクトに戻ります.5.Promise.all
Promise.all(promiseArray)
例var p1 = Promise.resolve(1),
p2 = Promise.resolve(2),
p3 = Promise.resolve(3);
Promise.all([p1, p2, p3]).then(function(results) {
console.log(results); // [1, 2, 3]
});
新たなプロモーションオブジェクトを生成して返します.パラメータ伝達プロミス配列の中のすべてのプロミスオブジェクトがレシオになった時、この方法は戻ってきます.新たに作成したプロミスはこれらのプロミスの値を使います.パラメータのいずれかのpromiseがrejectであれば、Promise.all全体の呼び出しはすぐに終了し、rejectの新しいpromiseオブジェクトに戻ります.6.Promise.race
Promise.all(promiseArray)
例var p1 = Promise.resolve(1),
p2 = Promise.resolve(2),
p3 = Promise.resolve(3);
Promise.all([p1, p2, p3]).then(function(results) {
console.log(results); // 1
});
新たなプロモーションオブジェクトを生成して返します.パラメータpromise配列のいずれかのpromiseオブジェクトがreolveまたはrejectに変更されると、この関数は戻り、このpromiseオブジェクトの値を使ってreolveまたはrejectを行います.参考住所:JavaScript Promiseミニブック(中国語版)