2011-10-18 85 views
2

我正在使用Express作爲項目,並且我一直在使用Cradle試用CouchDB數據庫。雖然異步執行的想法出於性能方面的考慮很酷,但它讓我的代碼對於需要連續進行幾次數據庫調用的例程來說真的很亂。是否可以同步進行搖籃調用?

是否可以在不使用回叫的情況下進行基座調用?或者,我想更準確的說,是否有更好的方法來組織不涉及嵌套3個或4個匿名函數的代碼,以便獲取數據庫查詢結果?該代碼僅在一個地方使用,因此使用只能調用一次的命名函數對我來說沒有任何意義。

+0

通常我會使用異步模塊,如果你有一系列的異步任務。 https://github.com/caolan/async如果你發佈了一些你的代碼示例,我可以給你一些例子。 – loganfsmyth

回答

3

是否可以在不使用回調的情況下進行基座調用?

據我所知,搖籃只有異步API。

或者,我想更準確,有沒有更好的方式來組織 代碼,不涉及嵌套內 彼此3個或4匿名函數只是爲了獲得在數據庫查詢結果?

我首先建議閱讀的流量控制的話題下面的文章,爲了得到這是怎麼回事的大局觀:

然後你就可以化繁爲簡,並充分利用其在node.js中與異步代碼問題涉及幾個流量控制庫的優勢:

+0

另外http://callbackhell.com/是一個非常好的異步JavaScript指南。試圖強制node.js進入同步api通常是一個壞主意。另外,只有一次使用命名函數沒有任何問題。即使只爲代碼可讀性命名的函數也是值得的 – Noah

+0

第二個URL已更改。我想這就是你的意思:https://shinesolutions.com/2011/08/26/asynchronous-code-design-with-node-js/ – feka