1
我有一個嵌套回調的代碼塊。我對代碼重構感興趣,以使其更具可讀性並避免代碼膨脹。有人可以提及如何將下面的代碼轉換爲承諾。我希望做一個比較,看看它的價值延伸跨越這樣的代碼回調實現如何避免帶有承諾的代碼中的拖尾回調
dataApi.getClientEntityByCtnId(Number(key), function (error, client1) {
if (error) return callback(error, null);
if (client1.id == 0)
return callback("unregistered client:"+ key, null);
dataApi.getClientEntityByCtnId(Number(key2), function (error, client2) {
if (error)
return callback(error, null);
if (client2.id == 0)
return callback("unregistered client:" + key2, null);
dataApi.setClientRelationshipEntity(client1.id, client2.id, function (error) {
if (error) return callback(error, null);
dataApi.setClientRelationshipEntity(client2.id, client1.id, function (error) {
nbCRpushed++;
if (nbCRpushed%1000==0) dataApi.logger.info("nb CR pushed into BC ="+nbCRpushed+"/" + dataApi.nbCR);
if (error) return callback(error, null);
if (nbCRpushed == dataApi.nbCR)
{
dataApi.pushCRToCache(callback);
}
});
});
});
});
你看過了嗎[如何將現有的回調API轉換爲承諾?](https://stackoverflow.com/q/22519784/1048572)? – Bergi