約束が解決された後、私たちはそれに対して.thenメソッドを使うことができます。いつ実行されますか?解決されるとすぐに実行されますか?例えば、次の例では、Javascriptが来るとすぐに約束が「準備完了」になります。何も大きな出来事はありません。約束事の中で大きな計算は行われないので、.thenメソッドは他のすべての後に実行されるのはなぜですか?おかげJavascript - 約束の結果はいつ利用可能になりますか?
let $body = $('#mainBlock');
let checker = true;
let testPromise = new Promise(
function(resolve, reject)
{
if(checker)
{
resolve();
$body.append('<p>CodeHasFinished</p>');
}
}
);
$body.append('<p>before</p>');
testPromise.then(function(){
$body.append('<p>middle</p>');
});
$body.append('<p>after</p>');
/*
Result added to body->
CodeHasFinished
before
after
middle
*/
'()'同期 – guest271314
私は{.then}すべての後に実行されることを前提とすべき結果を返すことが保証されていません.thenそれ以外は?ありがとう –
ここでは何も "仮定"しないでください。 'Promise'チェーンを使いたい場合は' .then() 'と' .catch() 'を連鎖し、' .then() 'と' .catch() 'に渡される関数内でタスクを実行します。同期コードを使用する場合は、同期コードを使用します。なぜ非同期コードと同期コードを同期しようとしていますか?あなたは何を達成しようとしていますか? – guest271314