【发布时间】:2016-07-13 10:16:17
【问题描述】:
我有一个对 URL 进行屏幕截图的 Node.JS 应用程序。因为多个用户可能同时请求同一个 URL,所以我想确保在任何给定时刻我只抓取一次 URL 的屏幕截图。
我通过以下方式实现了它:
var inProgressUrls = {};
function grabScreenshot(url) {
var inProgress = inProgressUrls[url];
if (inProgress) {
return inProgress;
}
var promise = new Promise(function(fulfill, reject) {
... grab screenshot ...
// Once done, remove the Promise from the map.
delete inProgressUrls[url];
});
inProgressUrls[url] = promise;
return promise;
}
我想知道的是我是否遗漏了一些并发问题或更好的实现方法?
【问题讨论】:
标签: javascript node.js concurrency promise