Currently we have this rudimentary requirement that you handle an error before declaring a new function and in basically all of the cases I've used this pattern it seems to work pretty well.

```
getData(function(err, data) {
	if (err) {}
	getMoreDataWith(data, function(err, moreData) {
		if (err) {}
		getEvenMoreDataWith(moreData, function(err, allOfTheThings) {
			if (err) {}
		});
	});
});
```

You could pretty easily construct a function that would break this pattern, but I'm not sure this is a best practice or something that should be encouraged by the rule. Ok, and I'm intimidated by building the stack.

```
function (err, data) {
   if (data) { 
      doSomething(function(err) {
          console.error(err);
      });
   } else if (err) {
      console.log(err);
   }
}
```