e2eテストケースを実行するために分度器を使用しています。すべての分度器の呼び出しは非同期呼び出しです。以下のコードは分度器コードです:非同期呼び出しで同期変数を追跡する方法
gridRow.then(function (rows) {
for (var index = 0; index < rows.length; index++) {
console.log(index); -------------------- 1
rows[index].all(by.className('ui-grid-cell-contents ng-scope')).get(1).getText().then(function (text) {
console.log(index); ----------------- 2
if (text.toUpperCase().replace(/ |-/g, '') === 'BRANCHONE') {
console.log(index); -------------- 3
}
});
}
});
この場合、rows.length = 2です。 Console.logは1出力0と1で期待通りですが、がであるため、2と3の出力のconsole.logはasync.Asyncが非同期呼び出しを並列に実行するため、 〜2(インデックス++)。
私の非同期呼び出し内でその同期variale(インデックス)をどのように追跡するかについての任意のアイデアですか?
上記のコードで何が起こっているのか説明できますか?私はあなたが最後に使った「私」と「インデックス」が何であるか理解していません。または役に立つ学習リソースへのリンクを共有してください –
私の答えははるかに良い説明で更新されました。より多くの例/情報については、最後にリンクを確認してください。 – qxz
[回答](http://stackoverflow.com/a/111200/1848578)下のリンクも良いです。 – qxz