まず、
約束非同期プログラミングは溶液で
第二に、あなたは非同期プログラミングに対処する必要がありますか?
1、ネットワーク要求
私たちは、別の関数を渡す傾向があるので、私たちは、あなたは、すぐに結果をネットワーク要求のラッパー機能を得ることができないので、
データ要求が成功すると、データは、コールバック関数を介して渡されますが、ネットワーク要求が非常に複雑になったときに、コールバック地獄があるでしょう
第三に、約束の三つの状態
我々が開発中の非同期操作を持っているときは、非同期操作に約束をラップすることができます
三つの状態の約束:
1、保留中:そのようなネットワークの進行中の要求、またはタイマーはしていない時間として、待機状態
2、果たす:状態会うと、私たちが主導コールバック決意を取るとき、それがこの状態にある、と(.thenコールバックされます)
3、拒否:我々は主導権を拒否したコールバック取るとき、それがこの状態にある、と(.catchコールバックされます、状態を拒否する)
方法:
新しいプロミス((決意、リジェクト)= {
setTimeout(()=> {
決意(「良いメッセージ」)
(「エラーメッセージ」)拒否
}、1000)
})。次に、(データ=> {
console.log(データ)
console.log(データ)
})。キャッチ(ERR => {
console.log(ERR)
})
四、連鎖呼び出しの約束
かどうかは、その後、またはキャッチオブジェクトの約束を返します。
だから、コードが呼び出しを連鎖させることができます。
Promise.resolve():データパッケージは、言った約束のオブジェクト、および解決内部コールバックオブジェクト
Promise.reject():プロミスは、データオブジェクトにパッケージし、コールバック内のオブジェクトは拒否します
五、約束速記
1、
リターンPromise.resolve(RES + '111')。
リターンPromise.reject(RES + '222');
2、省略Promise.resolve
リターンRES + '111';
「エラーメッセージ」を投げます。