解決:約束が混乱私は約束を解決すると、関数が実行され続けるべき
function test(){
return new Promise(resolve=>{
resolve(5)
setTimeout(()=>{console.log(7)}, 2000}
})
}
をそして私はこの
test().then(console.log);
のような機能を呼び出すので、それは2の後に、その後5を印刷し、それは私が期待したように、7秒です。 しかし、私は(解決した後に同期の事で作業する場合)には、動作が異なります:
function test(){
return new Promise(resolve=>{
resolve(5)
for(let i = 0; i < 100; i++)
console.log(i)
})
}
は、今では0から100までの数字を印刷し、その後、(それは5を出力します。しかし、私はそれが解決を通じて5を返すことが期待されます)残りのものをすべて印刷してください。
いいえあなたは 'リターン決意(5)'行う必要があり、その後、あなたは何もしません。そうでなければ、なぜあなたは解決していますか? – yBrodsky
@yBrodskyは真ではありません。明示的に返さずにresolveを使うことができます。 '戻る 'の唯一の重要なことは'新しい約束 'です。 – Andrew
キーワードは必須です。約束の中で解決後に何かをやり続けたい実践的な例? – yBrodsky