Promise.all解決異步條件的收斂

大致情況是我有異步的方法,放到一個promise then中,但是這個方法裏還需要有不定數量的數據庫請求,因爲速度關係需要異步處理。在查了一個晚上到底怎麼辦之後,發現了.all() 和.spead()兩個方法,權衡之後嘗試使用.all()解決。

因爲問題是判斷某數值是否爲空,爲空的話就進行請求,在前臺來說ajax就可以解決,後臺的話就像一個線程衍生出好多線程,然後將這些線程的結果都收斂起來。按照這個思路,把這些異步的操作都包裹到promise中,然後存到一個promiseArray裏,在方法結尾處 return Promise.all(promiseArray)就可以了。但是這種方法明顯有違promise使用的習慣,我的操作已經在每個promise中都做完了,所以下一個節點的then不需要任何返回值,在我爲期不長的使用中還沒見過這種情況。

因爲初學node,暫時沒找到其他的辦法,雖然看着下一個.then(function(){})確實有些不妥,不過只能先這樣做了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章