什么相当于nodejs中的jQuery.when()?

时间:2014-08-17 12:57:54

标签: node.js asynchronous stream promise fs

我问whats the equivalent of jquery when in angular现在我想在节点中做类似的事情。我需要这样的事情:

when(fs.readFile('file1'), fs.readFile('file2')) .done(function( a1, a2 ) { ... // do stuff });

我怎样才能做到这一点?感谢。

1 个答案:

答案 0 :(得分:2)

您需要节点0.11.13或更高版本才能使用或使用库,但这将是Promise.all

var Promise = require("bluebird"); // Imports the Bluebird promise library in 
                                   // new versions of node this is optional

Promise.promisifyAll(fs); // this is required if using Bluebird, you'll have to 
                          // do this manually with native promises.
Promise.all([fs.readFileAsync('file1'), fs.readFileAsync('file2')])
.spread(function( a1, a2 ) {
   ... // do stuff
});

至于如何将回调API转换为承诺 - 请参阅this question and answer