summaryrefslogtreecommitdiff
path: root/node_modules/foreachasync/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/foreachasync/README.md')
-rw-r--r--node_modules/foreachasync/README.md134
1 files changed, 134 insertions, 0 deletions
diff --git a/node_modules/foreachasync/README.md b/node_modules/foreachasync/README.md
new file mode 100644
index 0000000..e5c8035
--- /dev/null
+++ b/node_modules/foreachasync/README.md
@@ -0,0 +1,134 @@
+forEachAsync
+===
+
+Analogous to `[].forEach`, but handles items asynchronously with a final callback passed to `then`.
+
+This is the most essential piece of the [`ArrayAsync`](https://github.com/FuturesJS/ArrayAsync) package.
+
+v3.x - Diet Cola Edition
+---
+
+As I do every few years, I decided to rewrite FuturesJS.
+This year's remake is extremely lightweight.
+
+Usage
+===
+
+It's as simple as you could guess:
+
+```javascript
+ // waits for one request to finish before beginning the next
+ forEachAsync(['dogs', 'cats', 'octocats'], function (next, element, index, array) {
+ getPics(element, next);
+
+ // then after all of the elements have been handled
+ // the final callback fires to let you know it's all done
+ }).then(function () {
+ console.log('All requests have finished');
+ });
+
+ // where `getPics` might be an asynchronous web request such as this
+ function getPics(animal, cb) {
+ var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
+ $.getJSON(
+ flickerAPI
+ , { tags: thing
+ , tagmode: "any"
+ , format: "json"
+ , success: function (data) {
+ console.log('teh animals:', data);
+ }
+ , complete: cb
+ }
+ );
+ }
+```
+
+
+Browser Installation
+===
+
+You can install from bower:
+
+```bash
+bower install forEachAsync
+```
+
+Or download the raw file from <https://raw.github.com/FuturesJS/forEachAsync/master/forEachAsync.js>:
+
+```bash
+wget https://raw.github.com/FuturesJS/forEachAsync/master/forEachAsync.js
+```
+
+```javascript
+(function () {
+ 'use strict';
+
+ var forEachAsync = window.forEachAsync
+ ;
+
+ // do stuff ...
+}());
+```
+
+Or you can build it alongside other libraries:
+
+```bash
+npm install -g pakmanager
+npm install forEachAsync --save
+pakmanager -e browser build
+```
+
+```html
+<script src="pakmanaged.js"></script>
+```
+
+```javascript
+(function () {
+ 'use strict';
+
+ var forEachAsync = require('forEachAsync').forEachAsync
+ ;
+
+ // do stuff ...
+}());
+```
+
+
+Node Installation
+===
+
+```bash
+npm install --save forEachAsync@3.x
+```
+
+API
+===
+
+**`forEachAsync(array, callback[, thisArg])`**
+
+Parameters
+
+ * `array` Array of elements to iterate over
+ * `callback` Function to execute for each element, takes 4 arguments
+ * `next` the function to call when the current element has been dealt with
+ * `element` a single element of the aforementioned array
+ * `index` the index of the current element
+ * `array` the same array mentioned above
+ * `thisArg` Object to use as `this` when executing `callback`
+
+**`forEachAsync#then(done)`**
+
+Parameters
+
+ * `then` is in the return value of `forEachAsync` and accepts a final `done` callback.
+ * `done` called after `forEachAsync` is complete, takes no arguments
+
+Internal API
+===
+
+`forEachAsync.__BREAK`
+
+This is used internally for the purposes of the `ArrayAsync` library.
+
+Please don't `break` stuff; use [`ArrayAsync`](https://github.com/FuturesJS/ArrayAsync)`.someAsync` or [`ArrayAsync`](https://github.com/FuturesJS/ArrayAsync)`.everyAsync` instead.