3) ES6 Promiseのコンストラクタ関数
ES6 Promiseではnew Promise()
のようにPromiseオブジェクトを生成します。
var promise = new Promise(function(resolve, reject){
if (...) {
resolve(1);
} else {
reject(new Error('reason'));
}
});
- Promiseオブジェクトを
new
でインスタンス化します - コンストラクタに渡す関数は
resolve
reject
の2つの引数を持ちます
resolve
var promise = new Promise(function(resolve, reject){
resolve(1);
});
promise.then(function(value){
console.info(value);
});
resolve() を呼ぶと「処理が成功した」状態になります。 この状態は fulfilled と呼びます。
- fulfilledな時、
then()
の第一引数が呼ばれます - fulfilledな時、値を受け取る事ができます
reject
var promise = new Promise(function(resolve, reject){
reject(new Error('abort'));
});
promise.then(null, function(error){
console.log(error.message);
});
reject() を呼ぶと「処理が成功しなかった」状態になります。 この状態は rejectedと呼びます。
- rejectedな時、
then()
の第二引数が呼ばれます - rejectedな時、原因を受け取る事ができます
reject
にはErrorオブジェクトを渡します