Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 1.12 KB

use-promise-all.md

File metadata and controls

38 lines (30 loc) · 1.12 KB

Recommend using protractor.promise.all() to resolve multiple promises

When multiple promises need to be resolved, it tends to increase the nestedness and complexity of the code.

👎 For example:

elm1.getText().then(function (text1) {
  elm2.getText().then(function (text2) {
    elm3.getText().then(function (text3) {
      elm4.getText().then(function (text4) {
        // do smth with text1, text2, text3, text4
      });
    });
  });
});

👍 Instead, using protractor.promise.all() may help to resolve multiple promises "at once":

protractor.promise.all([
  elm1.getText(),
  elm2.getText(),
  elm3.getText(),
  elm4.getText()
]).then(function (texts) {  // texts is now an array of texts
   // do smth with texts
});

Rule details

The rule would look for the .then() method calls and warn if there is at least one more .then() among node's parents. Note that it would only look for then callback functions with at least one argument.

This rule is disabled by default mostly because I fear it is going to produce false positives too often. Please enable if applicable in your case.