大佬教程收集整理的这篇文章主要介绍了node.js – 循环中的节点Grunt异步任务,关闭不起作用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
>在循环中包装循环变量“key”以避免经典的“最后一个值”
只有“问题,在异步任务返回值之前循环完成很长时间,并且只显示最后一个值.
>调用完成(错误)以完成我的异步任务(根据Gruntjs常见问题解答)
>使用hasOwnproperty()确保键是对象的实际属性,而不是来自原型.
>遵循node.exec示例的格式,除了将exec的值赋给变量 – 我已尝试过,但它没有帮助.见下面的第一个参考.
这个功能输出……什么都没有!?由于某种原因,grunt.log.writeln语句甚至没有触发.任务完成且没有错误.我还尝试添加一个20秒的延迟,以防脚本在异步任务返回之前完成.奇怪的是,如果我不调用“完成(错误)”,文件将被写入文件(当我用grunt.file.write语句替换writeln时).
var done = this.async(),exec = require('child_process').exec,myJSON = { "file1" : "C:/home/me/jquery.js","file2 " : "C:/home/me/grunt.js",... "fileN" : "C:/home/me/N.js" },count; for (var key in myJSON) { if (myJSON.hasOwnProperty(key)) { (function (key) { exec( 'type "' + myJSON[key] + '"',function(error,stdout,stderr) { if (error) { grunt.log.writeln('!!! exec error: ' + error); } grunt.log.writeln('stdout: ' + stdout); grunt.log.writeln('stderr: ' + stderr); done(error); } ); })(key); count++; } }
参考文献:
http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
https://github.com/gruntjs/grunt/wiki/Frequently-Asked-Questions
像这样的东西(未经测试):
var done = this.async(); var exec = require('child_process').exec; var async = grunt.util.async; // updated var myJSON = { "file1": "C:/home/me/jquery.js","file2": "C:/home/me/grunt.js",... "fileN": "C:/home/me/N.js" }; async.forEach(Object.keys(myJSON),function(el,cb) { exec('type "' + myJSON[el] + '"',stderr) { if (error) { grunt.warn('!!! exec error: ' + error) return cb(error); } grunt.log.writeln('stdout: ' + stdout); grunt.log.writeln('stderr: ' + stderr); cb(); } ); },function(error) { done(!error); });
以上是大佬教程为你收集整理的node.js – 循环中的节点Grunt异步任务,关闭不起作用全部内容,希望文章能够帮你解决node.js – 循环中的节点Grunt异步任务,关闭不起作用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。