原文:Callbacks are imperative, promises are functional: Node's biggest missed opportunity promises 天生就不会受不断变化的情况影响. -- Frank Underwood, 'House of Cards' 人们常说Javascript是'函数式'编程语言.而这仅仅因为函数是它的一等值,可函数式编程的很多其他特性,包括不可变数据,递归比循环更招人待见,代数类型系统,规避副作用等,它都不俱备.尽管把函数作…
thinkjs是360奇舞团开源的一款Node.js MVC框架,该框架底层基于Promise来实现,很好的解决了Node.js里异步回调的问题.360奇舞团(奇虎75Team),是奇虎360公司Web平台部前端工程师与部分特约嘉宾组成的一个前端团队. thinkjs主要特性有: 支持Http.命令行.WebSocket.Restful等多种访问方式: 项目实行“C(Core)+B(Behavior)+D(Driver)”架构: Model高度封装,无需手写SQL语句: 封装了数据库(DB).会…
object Test extends App { def printMultiTable() { var i = 1 while (i < 10) { var j = 1 while (j <= i) { val prod = i * j if (j != 1) print(" ") val str = s"$j * $i = $prod" val k = str.length // while (k <= 10) // { // print(&…
promise主要是用来解决异步回调问题,其实还有好几种比promise更好的方案,后面再说,这节,我们先用promise来改造下,我以前写的一篇文章[js高手之路]javascript腾讯面试题学习封装一个简易的异步队列 中的一道面试题( 页面上有一个按钮,一个ul,点击按钮的时候,每隔1秒钟向ul的后面追加一个li, 一共追加10个,li的内容从0开始技术( 0, 1, 2, ....9 ) ). promise的小实例: function next1(){ return new Promi…
几年前,完全放弃Asp.net,彻底脱离微软方向.Web开发,在公司团队中,一概使用Node.js.Mongodb.Git,替换Asp.net mvc.Sql server和Tfs.当时来看,这是高风险的决定.所有人都习惯了Asp.net,知识和技术积累也集中在这个方向. 表面看来,仅仅是我个人对多年跟从微软的厌烦,导致整个技术路线嘎然而止,从技术角度而言,团队由此南辕北辙.几年过去,各种辛苦和折腾,间或的彼此抱怨之后,我们终于天经地义的,习惯了新的方向,没有人再有回到Asp.net的意思,恍若…
Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现). 但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点优势? Node.Js是基于javascript语言,建构在google V8 engine以及Linux上的一个非阻塞事件驱动IO框架.nodejs是单进程单线程,但是基于V8的强大驱动力,以及事件驱动模型,nodejs的 性能非常高,而且想达到多核或者多进程也不是很难(现在已经有大量的第三方mo…
第一个例子是关于医生看病. 在美国去看医生,需要填写大量表格,比如保险.个人信息之类,传统的基于线程的系统(thread-based system),接待员叫到你,你需要在前台填写完成这些表格,你站着填单,而接待员坐着看你填单.你让接待员没办法接待下一个客户,除非完成你的业务. 想让这个系统能运行的快一些,只有多加几个接待员,人力成本需要增加不少. 基于事件的系统(event-based system)中,当你到窗口发现需要填写一些额外的表格而不仅仅是挂个号,接待员把表格和笔给你,告诉你可以找个…
概要:本篇博客主要介绍了node.js中的全局对象. 在JavaScript中,通常window是全局对象,而node.js中的全局对象是global,所有全局变量(除了global本身之外)都是global对象的属性.如:console.process. 1.全局对象与全局变量 global最根本的作用是作为全局变量的宿主.满足以下条件: ●在最外层定义的变量: ● 全局对象的属性: ● 隐式定义的变量(未定义直接赋值的变量). 2.process process是一个全局变量,即global…
这些年以来,Node.js的兴起,JavaScript已经从当年的“世界最被误解的语言”变成了“世界最流行的语言”.且其发展之势,从语言本身的进化,库和包的增长,工具支持的完善,star项目和领域解决方案的涌现,平台.技术栈.应用领域的扩张等诸方面来看,都是前所未见的.随着Node.js服务的普及,对于后端服务是Java的公司就会产生一个问题,Node.js如何与Java通讯呢? 今天讲什么? 我们抛开架构设计,抛开传统的http.socket.rpc通讯协议,我们聊一聊在Node.js应用里如…
[这篇是很早期的文字,由于引用较广泛,担心误导,故按照现在的情形做一些修改] 几年前,完全放弃Asp.net,彻底脱离微软方向.Web开发,在公司团队中,一概使用Node.js.Mongodb.Git,替换Asp.net mvc.Sql server和Tfs.当时来看,这是高风险的决定.所有人都习惯了Asp.net,知识和技术积累也集中在这个方向. 表面看来,仅仅是我个人对多年跟从微软的厌烦,导致整个技术路线嘎然而止,从技术角度而言,团队由此南辕北辙.几年过去,各种辛苦和折腾,间或的彼此抱怨之后…