在request里使用promise q 的几点疑问?
发布于 8 小时前 作者 zhoubasten 53 次浏览 来自 问答

第一次使用q, 其中一步需要用到request.get(url, function(err, response, body)) 目前打算这么写: var promiseGet = Q.nfcall(request.get, url).then(function(results) { if( results.response.statusCode==400) { return Q.nfcall(doSomethingFailure, …); } else if ( results.response.statusCode==200) { return Q.nfcall(doSomethingGood, …); } }, function(err){ // request.get失败 }); promiseGet.then(function(results) { //问题:如何区分这个是doSomethingFailure的成功回调,还是doSomethingGood的回答? }, function(err) { // });

现在的问题是,即使当request.get返回成功,也有多种response.statusCode的可能, 比如400和200。 如果是400, 我还需为失败的情况做后续处理。如果是200, 则做一些成功的操作。

promiseGet.then(function(results))如何识到底是promiseGet针对400的回调还是200的回调呢?

另外,各位用q时?更喜欢用哪种方式?是不是nfcall()显得很不方便?

回到顶部