节点js代码使用promises

时间:2014-07-29 00:16:33

标签: node.js promise q

我是Q库的新手。

我想使用promises重写以下代码。

下面的代码是同步

var items = getItems();
var relatedItems = processItems(items)
saveRelatedItems(relatedItems)
markItemsAsProcessed(items)

有什么想法吗?

更新

这是我现在的代码

getItems()
.then(processItems)
.then(saveRelatedItems)
.fail(ProcessError)

现在我需要为处理过的getItems()标记我的项目。我还需要在markItemsAsProcessed来电完成后致电saveRelatedItems()

如何使用promises进行此流程?

1 个答案:

答案 0 :(得分:1)

要对现有值作出承诺,请使用Q(value)

编辑:您可以使用.thenResolve()将现有值注入承诺链:

var value = ...;
value.then(processItems)
    .then(saveRelatedItems)
    .thenResolve(value)
    .then(markItemsAsProcessed)‌​
    .fail(ProcessError).