我向您推荐@kriskowal的优秀文章“反应性一般理论”。在其中,他使用 Q 约定给出了承诺队列的以下实现:
function PromiseQueue() {
var ends = Promise.defer();
this.put = function (value) {
var next = Promise.defer();
ends.resolve({
head: value,
tail: next.promise
});
ends.resolve = next.resolve;
};
this.get = function () {
var result = ends.promise.get("head");
ends.promise = ends.promise.get("tail");
return result;
};
}
您会看到它正在使用 Q 功能,例如defer
和get
。我正试图围绕如何调整它以使用本地承诺,但我正在经历巨大的大脑冻结。(在处理这个问题的过程中,我还发现 Chrome 似乎提供了一种Promise.defer
方法,AFAIK 不在规范中。)
有人可以帮忙吗?