2017-08-14 31 views
1

我已經學到很多關於你的導遊承諾,朋友
但學習後,在我的腦海中產生了一個問題:基於承諾的編程,可能與否?

是真的(可能)來構建整個項目只與承諾?
如果不是:哪裏比promise更有用?

+1

不,因爲大部分「內置」節點函數都沒有使用Promises ... note:Promises在沒有回調概念的情況下無法工作 –

+1

promisified函數實際上是一個普通函數,返回一個Promise對象,並且幾乎所有原生JavaScript函數都是普通函數,那麼它有多可能?回調並不意味着它將被異步調用,有時它只是一個依賴注入(或IoC)設計,例如,許多Array,String方法需要一個回調函數,但他們同時調用它。 – tibetty

+2

承諾對於某些類型的通知非常有用。但是,他們有一組狹隘的要求,他們是一個合適的(一次通知,只有一次,必須符合未決=>解決或待決=拒絕模型,不同步等)。所以,我會說使用它們適合上述模型的所有異步操作,但使用EventEmitters或常規回調或其他發佈/訂閱模型用於其他類型的通知。請參閱[何時使用承諾與回調](https://stackoverflow.com/questions/45041462/node-js-when-to-use-promises-vs-callbacks/45046393)以獲取更多信息。 – jfriend00

回答

1
  1. Promisified函數實際上是一個普通函數,它返回一個Promise對象,並且幾乎所有原生JavaScript和內置的node.js函數都是普通函數,那麼它有多可能呢?回調函數並不意味着它將被異步調用,有時它只是一個依賴注入(或IoC)設計,例如,許多Array,String方法需要一個回調函數,但它們同步調用它,而Promise是一個異步機制。