2015-01-04 26 views
0

我可以通過以前的結果到using()函數嗎?像這樣:通過前諾言結果藍鳥加入

Promise.resolve([dbcfg]) 
    .then(getConnection()) 
    .using(runSql1, runSql2, runSql3) 

從官方的API文檔和例子,我可以找到Promise.using()Promise.join(),但似乎沒有辦法通過privious結果併發工作?

-------------------編輯-------------------

我的目的是連接到數據庫,然後運行3 concurrecy sqls(他們頓取決於對方),嗯,我應該使用.all()而不是?

+0

'using'是資源管理,我不認爲你的代碼做什麼你認爲它 - 也 - 你_calling_的getConnection承諾外它將__ promise_傳遞給'then',這被忽略(與一個函數相比)。 –

+0

謝謝。是的,'.using()'用於資源管理,可能是'.all()'是正確的功能。 – jovi

回答

0

我想你想要的是這樣的:

using(getConnection(configuration), function(conn) { 
    return Promise.all([runSql1(conn), runSql2(conn), runSq3(conn)]); 
}); 
+0

感謝您的回覆,但我的目的是運行sqls併發性,它們不依賴於任何其他的(實際上它們是'select'語句,所以不用擔心)。不管怎麼說,還是要謝謝你。 – jovi

+0

@jovi啊我看到了,我更新了答案。在這種情況下,「.all」確實是你想要的 – Esailija