From 946a9c903ada95027e93d4070f4d48f4b010c05e Mon Sep 17 00:00:00 2001 From: andrew Date: Thu, 30 Oct 2014 17:48:09 +0800 Subject: [PATCH] add simple example for basic concept section --- lesson17/README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lesson17/README.md b/lesson17/README.md index cc97df7..ca2c134 100644 --- a/lesson17/README.md +++ b/lesson17/README.md @@ -91,8 +91,36 @@ promiseSomething().then(function(fulfiled){ }); ``` +学习一个简单的例子 +```js +var Q = require('q'); +var defer = Q.defer(); +/** + * 获取初始promise + * @private + */ +function getInitialPromise() { + return defer.promise; +} +/** + * 为promise设置三种状态的回调函数 + */ +getInitialPromise().then(function(success){ + console.log(success); +},function(error){ + console.log(error); +},function(progress){ + console.log(progress); +}); +defer.notify('in progress');//控制台打印in progress +defer.resolve('resolve'); //控制台打印resolve +defer.reject('reject'); //没有输出。promise的状态只能改变一次 +``` + ## promise的传递 + + 这次我们要介绍的是 async 的 `mapLimit(arr, limit, iterator, callback)` 接口。另外,还有个常用的控制并发连接数的接口是 `queue(worker, concurrency)`,大家可以去 https://github.com/caolan/async#queueworker-concurrency 看看说明。 这回我就不带大家爬网站了,我们来专注知识点:并发连接数控制。