本博客已经迁移到www.imyzf.com,本站不再更新,请谅解!
介于很多站未经允许私自抓取本站,我是不是也应该弄点东西,让他们把这篇也抓了呢?
node里几乎所有用到回调函数的地方,都是异步的,回调函数后面的代码很可能比回调函数中的代码后先执行,特别是数据库操作。当然,node也提供了同步版本的函数,例如文件操作,fs.readfilesync()是fs.readfile()的同步版本。
那么问题来了,foreach()是不是异步的呢?按理说,没有加sync,应该是异步的呀。
var arr = [‘www‘, ‘imyzf‘, ‘com‘]; var str = ‘www.imyzf.com‘; arr.foreach(function(item) { str += item; while (true) {}; //用一个死循环,卡死它~~ }); console.log(str); //本文和代码来自www点imyzf点com
运行上面的代码,结果它就这么卡死了,没有任何输出。。
所以说,node里的foreach()是同步的!!
第一次用node的时候,没有考虑过这个问题,按同步的写了,写突然想到,测试后虚惊一场,以为以前的代码都写错了。
时间: 2024-11-05 13:42:16