Node.js有沒有辦法檢查以確定global.Promise
是否是本機承諾實現?與藍鳥承諾相反,等等?Native承諾與藍鳥承諾
回答
你可以做功能測試和測試,以查看是否有任何的藍鳥擴展功能都存在:
function testBluebird() {
// test to see if a representative sample of Bluebird-specific features are present
return Promise && Promise.join && Promise.try && Promise.method && Promise.map;
}
就像在JavaScript中很多事情,你應該只是測試,看看你想要的功能使用是存在的而不是試圖確定是否加載了特定的庫。
謝謝,我最感興趣的是確定承諾是否爲本地承諾,而不是承諾是藍鳥,但這應該適用於藍鳥 –
@AlexanderMills - 你真的想要解決什麼問題?你爲什麼想知道它是否是本地的?除了Bluebird,肯定還有其他非原生的Promise實現,所以這個返回的'false'不能保證承諾是原生的。 – jfriend00
我需要修補原生的Promise實現,但如果它不是原生的,我不想修補Promise。 –
- 1. 承諾與FS和藍鳥
- 2. 藍鳥承諾和域名
- 3. 使用藍鳥承諾
- 4. 藍鳥承諾和回調
- 5. 藍鳥承諾多級
- 6. TypeScript覆蓋ES6承諾與藍鳥
- 7. 迭代與藍鳥的承諾陣列
- 8. 藍鳥承諾解決與帆
- 9. 藍鳥承諾與事件發射器
- 10. Node.js&Redis&For循環與藍鳥承諾?
- 11. 藍鳥promise.all在中期承諾鏈捕捉並繼續承諾
- 12. 藍鳥承諾作爲承諾回調不知道api
- 13. ES6承諾/打字稿和藍鳥承諾
- 14. 使用藍鳥承諾做N次
- 15. 藍鳥執行系列承諾數組
- 16. 藍鳥承諾並抓分支
- 17. 藍鳥承諾阻止自然
- 18. javascript - 藍鳥未正確啓動承諾
- 19. 藍鳥承諾:捕獲錯誤
- 20. 藍鳥承諾每個返回結果
- 21. 條件那麼在承諾(藍鳥)
- 22. 在Node.JS中使用藍鳥承諾
- 23. 藍鳥和es6承諾打字稿
- 24. 返回的拒絕承諾和藍鳥
- 25. 如何用藍鳥包裝承諾
- 26. 藍鳥承諾重試DocumentDB請求
- 27. JavaScript承諾藍鳥跳過示例「then」
- 28. 藍鳥承諾:爲什麼不超時?
- 29. Django等效於Node.js的藍鳥承諾
- 30. 藍鳥承諾沒有然後
你可以通過在鴨子上輸入API來完成相反的操作。對於藍鳥來說'.promisifyAll'或'.fapply'來代表Q,但是這並不能幫助檢測原生。我不確定取代global.Promise首先是一個好主意。 – Matt
@Matt我沒有取代global.Promise,雖然我的圖書館的用戶可能會這樣做,我無法控制,但需要檢測它。我同意取代global.Promise可能是一個不好的舉措。 –