我正在使用nodejs和使用q模塊學習promise。q模塊中的延遲()
我誤解了q模塊中的delay()
fn,我想。
當我運行這段代碼:
chain
.then (function() {console.log('starting');})
.then (function() {console.log('waiting 2500ms');})
.delay(2500)
.then (function() {console.log('done');})
.then (function() {console.log('waiting 5500ms');})
.delay(5500)
.then (function() {console.log('done');})
.then(function() {console.log('waiting 4500ms');})
.delay(4500)
.then (function() {console.log('done');})
.then(function() { process.exit(0);});
我希望看到的指定時間的延遲。
第一次延遲似乎發生。
第二次延遲似乎不是5500ms。
第三次延遲,預計爲4500ms,似乎根本沒有發生。
我在理解「delay(x)」意思是「那麼延遲x毫秒」。這是不正確的?我誤解了嗎?
如果我修改代碼來替換每個delay(x)
與
.then(function() {sleep.usleep(x * 1000);})
...然後它工作如我所料。
有人能解釋一下嗎? 謝謝。
**警告**:此主題中的信息與Q的舊版本有關,因此不再準確。新版本的延遲工作方式與您期望的相同。 –