0
我想鏈接我的承諾,取決於先前的呼叫是否已解決或拒絕。我在所有承諾中致電服務器。 所以,我寫它喜歡 -承諾的條件鏈接
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);
});
由於每個然後返回一個承諾對象,問題是,如果趕上最後一個除外的任何承諾,呼籲決心總是被調用。我想的一種方法是檢查err是否爲空,並忽略它。這是正確的做法嗎?
我使用的請求模塊,如果我永遠設置:真的,我開始getting-
{ [Error: socket hang up] code: 'ECONNRESET' }
,直到永遠假的,它的工作原理。爲什麼我的套接字在請求結束後仍然很忙?由於只有在拒絕被調用時下一個請求才會進行,因此在那個時候套接字應該是空閒的。
什麼是'回調(空,數據)'? – Bergi
@Bergi回調函數將錯誤或結果傳遞給控制器。 – krrish
我不明白'如果有任何承諾,除了最後一個請求解決',那個catch總是被調用。你能多解釋一下嗎? – John