Tag: rsvp promise

将承诺包装到同步function中

我正在编写一个节点CLI,其中同步行为通常比asynchronous更合适,我想能够利用以下约定: # Write functional code as an async function which returns a Promise function foobar() { … } # Uses async function but blocks on promise fulfillments function foobarSync() { … } 所以例如 – 使用RSVP承诺实现 – 我已经编写了以下用于调用shell脚本的asynchronous函数: var shell = function (params,options) { options = extend({timeout: 4000},options); var commandResponse = ''; var errorMessage =''; // […]

Node.js – 在另一个方法完全执行后调用一个方法

我有两个简单的方法: function do(x,y){ if(x){ XHR1().success(); } if(y){ XHR2().success(); } } function done(){ return something; } 现在我只想确保在do()完成时调用done() (** do()方法包含Mysql DB的asynchronous请求 ) 我怎么能做到这一点?** 显然这不会把这样的方法按顺序排列: do(x=1,y=1); done(); //this can run also if do() has not finished yet 所以我tryed: function do(x,y,_callback){ if(x){ XHR1().success(); } if(y){ XHR2().success(); } _callback(); } function done(){ return something; } do(x=1,y=1,done()); // this won't work […]

如何用promise来asynchronous读取多个文件,然后继续

我刚刚承诺并使用rsvp实现。 我想asynchronous读取文件列表,然后只有在读取完所有文件后才能继续执行另一个任务。 我已经有了基本的结构来读取一个文件,并链接到下一个任务: var loadFile = function (path) { return new rsvp.Promise(function (resolve, reject) { fs.readFile (path, 'utf8', function (error, data) { if (error) { reject(error); } resolve(data); }); }); }; loadFile('src/index.txt').then(function (data) { console.log(data); return nextTask(data); }).then(function (output) { //do something with output }).catch(function (error) { console.log(error); }); 我想要做这样的事情: loadFile(['src/index.txt', 'src/extra.txt', 'src/another.txt']).then( … 我在文档中看到了承诺和承诺的 […]