我想根据之前的电话是解决还是拒绝来链接我的承诺。我在所有承诺中都打电话给服务器。所以,我写它就像 -
apiServices.patientsSearch(id)
.then(function(data){
return callback(null,data);
},function(err){
return apiServices.studiesSearch(id);
}).then(function(data){
return callback(null,data);
},function(){
return apiServices.seriesSearch(id);
}).then(function(data){
return callback(null,data);
})
.catch(function(err){
return callback(false,err);
});
由于every then 返回一个promise 对象,问题是如果除了最后一个promise 之外的任何promise 调用resolve,catch 总是被调用。我在想的一种方法是检查 err 是否为空并忽略它。这是正确的方法吗?
我正在使用请求模块,如果我永远设置:真的,我开始得到 -
{ [Error: socket hang up] code: 'ECONNRESET' }
永远是假的,它有效。为什么我的套接字在请求结束后仍然很忙?由于只有在调用拒绝时才会进行下一个请求,所以到那时套接字应该是空闲的。