私は自動テストフレームワーク、分度器を使用しています。条件付きで約束を解く
私は、分度器がコード評価を非同期的に解決するためによくpromises
を利用することが分かりました。
質問:条件が満たされたら、プロミスを特定の値に手動で解決する方法を教えてください。
更新日:2017年9月8日
申し訳ありませんが、私はpromises
に少しだけ不明でした。 documentation()element.allの戻り値の型に応じてここには問題はありません
// match variable
var match = false;
// get all elements with `div` tag
var scanElements = element.all(by.css('div')).each(function(el) {
// get text content of element
el.getText().then(function(text) {
// split words into array based on (space) delimeter
var sp = text.split(' ');
for (var i = 0; i < sp.length; i++) {
if (sp[i] == 'Stack Overflow') {
match = true;
}
}
});
});
// on complete
scanElements.then(function() {
if (match) {
console.log('Status: Found match!');
}
else {
console.log('Status: No match');
}
});
を私は分度器を使用していましたが、私はそれらのフレームワークではブルーバードとQを使用しました、あなたは ''でreject'するオプションがありますreturn deferred.reject(data) '約束し、' .fail((data)=>) 'ハンドラを使ってステータスを捕捉します。あるいは、 'deferred.resolve(myConditionalData1)' ...や 'deferred.resolve(myConditionalData2)'のような異なる値で約束を解決することもできます。約束を複数の方法で解決することができ、複数のデータ値が正しく処理される必要があります。これをレスポンスとして追加しないのは、使用しているフレームワークで作業していないためです。希望がこれを助ける –