我画了一个简单的流程图,它基本上从互联网抓取一些数据并将它们加载到数据库中。到目前为止,我曾认为我对承诺很和平,但现在我有一个问题,我至少工作了三天没有一个简单的步骤。
以下是流程图:
考虑一下这样的静态字符串数组:const courseCodes = ["ATA, "AKM", "BLG",... ]
。
我有一个fetch
函数,它基本上是一个HTTP请求,然后是解析。之后它返回一些对象数组。
fetch
与使用预期的对象数组调用它的回调非常有效,它甚至可以与Promises一起使用,这种方式更加整洁。
fetch
数组中的每个元素作为参数调用 courseCodes
函数。此任务应该在并行执行中执行,因为那些单独的fetch
函数不会相互影响。
因此,回调(或results
s resolve参数)中应该有一个Promise
数组,其中包含一组对象数组。有了这些结果,我应该使用loadCourse
数组中的那些对象作为参数调用我的results
。这些任务应该在串行执行中执行,因为它基本上是在存在类似对象时查询数据库,如果不存在则添加它。
如何在node.js中执行此类任务?我不能在这样的场景中维护异步流程。我使用caolan/async
库和bluebird
& q
承诺图书馆。
答案 0 :(得分:1)
尝试这样的事情,如果你能理解这一点:
<div class="pagination full">
<span class="previous_page disabled">< 前へ</span>
<em class="current">1</em>
<a rel="next" href="/student/search?page=2">2</a>
<a href="/student/search?page=3">3</a>
<a href="/student/search?page=4">4</a>
<a href="/student/search?page=5">5</a>
<a href="/student/search?page=6">6</a>
<a href="/student/search?page=7">7</a>
<a href="/student/search?page=8">8</a>
<a href="/student/search?page=9">9</a>
<span class="gap">…</span>
<a href="/student/search?page=95">95</a>
<a href="/student/search?page=96">96</a>
<a href="/student/search?page=97">97</a>
<a class="next_page" rel="next" href="/student/search?page=2">次へ ></a>
</div>
或者您可以参考nimble npm模块。