我該如何在每一分鐘內派遣10個承諾?JavaScript - 每分鐘發送10個承諾?
我有這方面的動態日期列表中:
var dates = ["2016-08-31T23:00:00.000Z","2016-09-01T23:00:00.000Z","2016-09-02T23:00:00.000Z","2016-09-03T23:00:00.000Z","2016-09-04T23:00:00.000Z","2016-09-05T23:00:00.000Z","2016-09-06T23:00:00.000Z","2016-09-07T23:00:00.000Z","2016-09-08T23:00:00.000Z","2016-09-09T23:00:00.000Z","2016-09-10T23:00:00.000Z","2016-09-11T23:00:00.000Z","2016-09-12T23:00:00.000Z","2016-09-13T23:00:00.000Z","2016-09-14T23:00:00.000Z","2016-09-15T23:00:00.000Z","2016-09-16T23:00:00.000Z","2016-09-17T23:00:00.000Z","2016-09-18T23:00:00.000Z","2016-09-19T23:00:00.000Z","2016-09-20T23:00:00.000Z","2016-09-21T23:00:00.000Z","2016-09-22T23:00:00.000Z","2016-09-23T23:00:00.000Z","2016-09-24T23:00:00.000Z","2016-09-25T23:00:00.000Z","2016-09-26T23:00:00.000Z","2016-09-27T23:00:00.000Z","2016-09-28T23:00:00.000Z","2016-09-29T23:00:00.000Z","2016-09-30T23:00:00.000Z","2016-10-01T23:00:00.000Z"];
我想要得到的內容或結果與這些日期相關聯。但我不想一口氣拿到它們,但是每一分鐘都會有10件物品,直到日期不再。
這是我的工作代碼:
var promises = dates.map(function (date, i) {
return getContent(date);
});
Promise.all(promises).then((data) => {
console.log(data);
}).catch((err) => {
console.log(err.message);
});
它得到連續的內容,不正是我想要的。
但是有可能實現我所需要的嗎?有任何想法嗎?
注:
getContent(date)
含有大量的async await
諾言,這樣在promse.all
調用它必須是一個promise
嫌我猜,否則我可以在一個地方的所有返回數據(這是console.log(data);
)當承諾結束時。
編輯:
const delayValue = (val, ms) => {
new Promise(resolve => {
setTimeout(resolve.bind(null, val), ms)
});
}
如果每分鐘的數據量真的很重要,我不會使用承諾。我將只使用'setInterval'並在所有數據消失後清除間隔。 – AtheistP3ace
承諾不是隨着時間的推移而開展工作,它們是爲了在一些工作完成後處理某件事情。根據這項工作的結果,可能做些不同的事情。我會重新考慮你的代碼以及你實際想要達到的目標。即使下面的答案只是一個黑客,承諾做你想做的事情,他們不打算做。 – AtheistP3ace
*「每分鐘每10個項目,直到日期不再」*:我不明白這句話。你能找出一個例子嗎? – trincot