私はPromisesでスピードアップしていますが、理解できないことが1つあります。約定のための解決関数を定義できますか?
そこで、我々はそうのような約束を定義します。
new Promise(/* executor */ function(resolve, reject) { ... });
私はresolve
は状況が正常に解決されたときに、私が呼び出す必要がある関数であるという印象の下にありました。だから私はこのような何かをしようとした:
function resolve(number) {
return number * 2;
}
var p = new Promise((resolve, reject) => {
setTimeout(() => resolve(5), 1000);
});
p.then((doubledNumber) => {
console.log(doubledNumber); // expected: 10, actual: 5
});
だから、resolve
は通常の意味での関数ではありませんように、それはより多くのreturn
のようなキーワードのようなものだそうです。言い換えれば、私がresolve
と呼んでいるときに、私はresolve
へのargとして私が提供する値を渡すようにプログラムに指示するだけです。
私の理解は正しいですか?
OK、について少しarg名でシャドーされている関数名は、私がクリックしたものです。だから、返された値を "処理"するには、関数r(val){return val * 2; } 'そして' setTimeout(()=>解決(r(5))、1000) 'のようなPromiseで呼び出します。 –
@KayceBasquesうん、それはこれでもうまくいくだろう。 :) –