2017-01-24 18 views
1

私は約10msかかると約束を返している関数呼び出しを持っています 私はこの関数を(別の関数の始めに)非同期コードなし)。プロビジョニングがホスト関数の実行が完了する前に解決された場合、ホスト関数が終了するのを待ちますか?AngularJS約束:関数が返される前に約束が返される場合

function foo() { 
    getSomeValues().then(function() { 
    // getSomeValues takes approx. 10ms 
    console.log('Got Values'); 
    }); 

    for (var i = 0; i < 3; i++) { 
    // both operations take approx. 900ms 
    moveFile(); 
    moveFileBack(); 
    console.log('Iteration: ' + (i + 1)); 
    } 
} 

この機能は、どのような順序でコンソールに印刷されますか?

答えて

4

はい。

Promiseコールバックは、常に次のイベントループフレームで非同期に実行されます。

実行中(Javaスクリプトはシングルスレッドなので)、コードがあなたの関数を中断することは全く不可能です。

関連する問題