pormise Q 使用文档简单描述

关于 promise 介绍和使用方法 请点击浏览其他博客. 今天分享的是针对 Q 开源包 api 的简单白话版本. promise.then(onFulfilled, onRejected, onProgress) then 回调接收 3个参数 ,分别是 成功时,失败时,持续读取状态时 前两个函数对应Promise的两种状态的回调函数fulfiled 和 rejected,第三个函数用于处理进度信息 promise.catch(onRejected) promise 遇到异常时执行 promise.then(undefined, onRejected) 当catc

CommonJS 是什么 规范

概述 CommonJS是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,一个单独的文件就是一个模块。 加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。下面就是一个简单的模块文件example.js。 console.log("evaluating example.js"); var invisible = function () { console.log("invisible"); } exports.message = "hi"; exports.say = function () { c

promise Q.all 方法使用 及 spread 分散返回结果

promise 规范 点击查看此博文了解 promise规范让你解脱callback回调噩梦 promise 规范 开源包 Q 使用 点击查看博文 node.js下如何使用q 当promise 遇到 forEach 当你的一个业务需要执行多个异步方法时,最后统一返回 计数器法 顾名思义,用一个计数器来统计遍历/调用函数的次数,最后一次统一返回结果 假设我们有一个 实现 promise 规范的函数 test var test=function(a){ var defer=Q.defer(); defer.resolve(a+1); return defer.p

webpack 前端加载工具 让 浏览器端 javascript 执行 CommonJS规范

#为什么用webpack 如果我们 前端 javascript 能像 node.js 一样 require 去引用一个依赖包,那么前端的世界就不会像现在这么乱 现在为什么乱? 假设: a.js 依赖 b.js b.js 依赖 c.js c.js 依赖 d.js 如果在我们前端去引用这些依赖的时候,往往是这样的: <script src='a.js'></script> <script src='b.js'></script> <script src='c.js'></script> <scri

levelDB 数据操作接口 实现 promise 规范

什么是levelDB google 公司开发的一款 高性能KV型nosql数据库 ,你可以点击链接查看以前的介绍. node.js 下使用leveldb 请移步到这里. 但是之前的所有leveldb 操作接口都是基于 callback 回调.所以今天这篇就是分享下leveldb 数据接口实现promise 规范. 什么是promise promise 规范让javascript拜托callback回调 请移步到上面的博文查看 levelup levelup 是 leveldb 在node.js 上的实现开源包. github地址: https://github.com/L

javascript 动态加载按顺序加载运行 js

javascript 在浏览器中的加载是如何的? 如何你的 script 上没有任何 异步,阻塞 等标注: 浏览器会异步加载 javascript 文件,但是会按照引用文件中的书写顺序从上到下执行解析 javascript Defer属性标记 defer是html4.0中定义的,该属性使得浏览器能延迟脚本的执行,等文档完成解析完成后会按照他们在文档出现顺序再去下载解析。 也就是说defer属性的 script 就类似于将 script 放在body中的加载 效果一致. 但是defer属性在各个浏览器中支持程度有点不同,就是说,有的浏览器不完全支持. Async属性标注 as

react 组件生命周期 相关事件 方法

一般来说, React 组件是一个组件类由 extends Component 创建,并且提供一个 render 方法以及其他可选的生命周期函数、组件相关的事件或方法来定义。 一个简单的例子: import React, { Component } from 'react'; import { render } from 'react-dom'; class LikeButton extends Component { getInitialState() { return { liked: false }; } handleClick(e) { this.

React Native 学习 如何使用 style 样式

关于 React Native 学习 系列之如何定义css 样式 样式 React Native 不实现 CSS,而是依赖于 JavaScript 来为你的应用程序设置样式。这是一个有争议的决定,你可以阅读那些幻灯片,了解背后的基本原理。 声明样式 在 React Native 中声明样式的方法如下: var styles = StyleSheet.create({ base: { width: 38, height: 38, }, background: { backgroundColor: '#222222', }, active:

React 理解 及 与其它框架区别

在 React 下,我们需要考虑的,是每个组件在任意一个状态下应该怎么渲染。 (状态就是数据) React 会把这些组件装配成页面。 然后当数据更新后, React 又把新数据传给组件,于是又根据新数据重新渲染 React 把重新渲染的结果和之前渲染的结果进行比对,找出需要更新的部分,进行更新。 我们只需要正确的更新数据/状态,不必再在渲染时考虑数据发生了什么变化(例如是增加了一条记录还是减少了一条记录?增加到什么位置?不需要考虑这些也就不需要考虑我们在进行 DOM 操作时插入到哪里等问题)。 我们只需要指定好规则(即给出任意一种状态,这个组件应该怎么渲染),并正确的更新状态,这些

JSX 语法使用

利用 JSX 编写 DOM 结构,可以用原生的 HTML 标签,也可以直接像普通标签一样引用 React 组件。这两者约定通过大小写来区分,小写的字符串是 HTML 标签,大写开头的变量是 React 组件。 使用 HTML 标签: import React from 'react'; import { render } from 'react-dom'; var myDivElement = <div className="foo" />; render(myDivElement, document.getElementById('mountNode')); HTML 里

JSX 语法了解,我们为什么要学习它

传统的 MVC 是将模板放在其他地方,比如 script 标签或者模板文件,再在 JS 中通过某种手段引用模板。按照这种思路,想想多少次我们面对四处分散的模板片段不知所措?纠结模板引擎,纠结模板存放位置,纠结如何引用模板……下面是一段 React 官方的看法: We strongly believe that components are the right way to separate concerns rather than "templates" and "display logic." We think that markup and

MP4Box 借用HTML5 file api 本地读取 mp4 头信息

上一篇博文介绍了 html5 file api html5 提供了一套可以操作本地文件的 api ,但是有一定的局限性 必须由用户发起一个事件,所以你不要妄想着用户浏览器加载某个站点时,主动去读取他本地硬盘的资料....不可能的. 你的浏览器必须支持 html5 的 file api ,所以你也不要妄想去兼容IE6 用户发起行为比如: file upload 操作, 文件拖拽 等. 最近遇到一个需求 1.本地上传视频要保存到七牛服务器 2.提交切割视频任务 (大文件切割成多份) 3.返回视频截图 (按视频长短截取图片,供管理员审核视频内容) 七牛这边提供的有 j

HTML5读取 本地文件 File Api 使用

javascript 访问本地文件,已经成为可能. HTML5 file api 该规范主要定义了以下数据结构: File FileList Blob HTML5 访问文件和大部分语言是一致的,先获取文件句柄,然后调用文件访问接口,打开文件句柄,读取文件! 选择文件 首先检测一下当前浏览器是否支持File Api: function isSupportFileApi() { if(window.File && window.FileList && window.FileReader && window.Blob

node.js 下 promise 开源包 q 使用

promise 规范 可以让你从繁杂的 callback 中解脱出来. 如果我们在传统的 callback 中执行 5个 步骤,应该是下面这样的: setp1(function(res)){ setp2(function(res)){ setp3(function(res){ setp4(function(res){ setp5(function(res){ //终于执行完了 }); }); }); });

React Native 学习 安装 Android 运行环境

React Native 安卓应用程序所需要的开发环境的基本安装步骤 安装和配置 SDK 安装最新的 JDK. 安卓 SDK brew install android-sdk 将它添加到 ~/.bashrc, ~/.zshrc 或者任何其他您的 shell 所使用的路径: export ANDROID_HOME=/usr/local/opt/android-sdk 启动一个新的 shell 并且运行 android ➜ /Users/zhangzhi >android Android SDK 生成工具版本 23.0.1 Android 6.0 (API 23

React Native 中文版 安装 入门 环境部署

要求 OS X - 当前仅支持 OS X 推荐使用 Homebrew 的方式来安装 nvm,watchman 和 flow。 安装 Node.js 4.0 或者更新的版本。 使用 Homebrew 来安装 nvm 或者参考 它的安装指南。 接着运行 nvm install node && nvm alias default node, 它可以让您安装最新版本的 Node.js 并设置您的终端,所以你可以通过键入 node 来运行它。使用 Nvm 可以让您安装多个版本的 Node.js 并且在它们之间轻松切换。 npm 的更新之处。 brew 安装 wa

安装 nrm 自由切换 npm 源 国内镜像提升下载速度

之前写了一篇博文,关于如何把 npm 换到国内镜像员的博文,如下: 给电脑换 npm 国内镜像员 cnpm 为什么要换,你懂的! 今天给大家推荐一个 npm 开源包 nrm 基于 npm ,全局安装以后,你开源无缝快速切换几个源,提高下载速度,拒绝 loading ! 安装 npm install -g nrm 开源地址 https://github.com/Pana/nrm 使用 查看帮助 ➜ /Users/zhangzhi/code >nrm -h Usage: nrm [options] [command] Commands: l

[投稿] 深圳 南山区 高薪招聘 web 开发 攻城狮

坐标: 深圳 , 南山区 职位: web 开发工程师 岗位职责: 1、负责后台相关业务系统的设计和研发; 2、负责平台开放接口的设计和研发; 3、优化性能、维护现有系统的功能模块、扩展的基础框架; 任职要求: 1、本科学历以上,计算机或相关专业,2年以上工作项目经验;对javascript语言本身有较为深刻的理解。 2、 了解NodeJS及其相关框架 ,要求至少有1年以上的服务器端研发经验; 3、对数据结构和算法设计有一定的理解; 4、熟悉MongoDB或MySQL ,有较强的SQL编程、优化能力; 5、熟悉Linux,熟悉常用的Shell命令; 6、熟练使用Git代码管理工具及

node.js webkit 项目 开启node.js 桌面应用

为什么是 node.js 桌面应用 准确的说,这只是一个浏览器, node-webkit 项目是 chromium 和 node.js 搭建起来的本地运行时环境. 我们知道node.js 是javascript 在服务器端通过强大的 V8 引擎实现的. chromium 内置了 V8 引擎 所以 node-webkit 就这样结合起来了. 回到刚才的问题,为什么说是桌面应用 Node支持的与操作系统交互的功能,文件系统,网络 , 操作系统资源等, 以及Node之上的第三方库都可以在node-webkit中进行使用 所以他很像是一个桌面级应用,但是又有区别 和传统桌面应用不

node-webkit 项目中的 package.json 格式

node.js 既然是依靠google V8引擎驱动的,而chrome浏览器内置了V8,所以就诞生了 node-webkit 这样的项目. 它的执行宿主也是 浏览器,但是由于 node.js 的支持,我们可以轻松访问当前执行环境的OS ,这不就是PC 客户端程序的功能吗. 可见 node-webkit 项目利用了web UI 的优势,node.js 访问本地OS 的优势,从而用 javascript 实现了一个本地 客户端程序. 今天我们首先来看下一个简单的 node-webkit 项目中 package.json 中,各项所代表的意义. 实例: { "name": "Ser

Agreeing to the Xcode/iOS license requires admin privileges

错误描述 Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. 解决方法 打开终端,输入 sudo xcodebuild -license 终端提示敲回车键(enter)打开许可协议 ,回车继续 终端提示 按下 “space” 键阅读许可协议,按“q” 不阅读 ,直接 q 即可 最终,终端会出现三个选项,agree 、print、cancel,不用想,能不是agree 吗!当然是输入agree,然后enter出自:Agreeing

mac 系统下 如何 彻底 删除 node.js

mac 系统下,如何彻底删除 node.js 网上找到一段脚本,可以彻底从你的mac上卸载掉node.js #!/bin/bash lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \ | while read i; do sudo rm /usr/local/${i} done sudo rm -rf /usr/local/lib/node \ /usr/local/lib/node_modules \ /var/db/receipts/org.nodejs.* 首先创建一个 shell 文件 nano

JSX语法及学习

JSX 是 Javascript 代码里直接写XML的语法 JSX (Javascript XML syntax transform) 是使用XML语法编写Javascript的一套解析工具; X代表XML;也可以理解为扩展(eXtension),因为实现JSX功能本身就是使用Javascript; React建议使用JSX(但非必要) 实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码 React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰

spawn exec方法 在 node.js child_process模块中的应用及区别 解决 Error: maxBuffer exceeded

node.js 的child_process模块中有两个方法spawn和exec,这两个方法都可以被用来开启一个子进程来执行其他的程序 既然两个方法的功能一样,那么究竟应该选择哪个方法。在本文中,我们将一起来探索spawn和我exec方法的不同之处,以便你在将来能够选择正确的方法 spawn child_process.spaen会返回一个带有stdout和stderr流的对象。你可以通过stdout流来读取子进程返回给Node.js的数据。stdout拥有’data’,’end’以及一般流所具有的事件。当你想要子进程返回大量数据给Node时,比如说图像处理,读取二进制数据等等,你

[投稿] 北京 中关村 高薪招聘后端攻城狮

你有招聘/求职机会,请联系 QQ:378989619 免费发布! 地点: 北京 坐标: 中关村 职位: 后端开发工程师 我叫刘大民,是敢玩的一名普通员工,刚刚我的总监找到我。 总监:“大民,我记得你简历里说你参加广告比赛得过重在参与奖?” 我:“是啊总监。” 总监:“那你会写文案喽。” 我:“啊?” 总监:“很好,你给我写个招聘文案,三点要。” 言毕,总监就转身走了,我低头一看手表,时间还富裕刚两点六十,发会呆再写吧…… 今天起晚了,10点才到公司,这月估计又得拿全勤奖了,才1000毛爷爷,穷逼公司真抠门…… 上午头脑风暴后去吃午饭,午休在二楼沙发睡了一个小时

lodash underscore 对象数组排序 sortBy 小记

关于 lodash 和 underscore 的对比看这篇帖子 今天分享一个关于 lodash 的排序小方法 _.sortBy([1, 2, 3], function(n) { return Math.sin(n); }); 上面是官方示例 默认排序方式是正序排列 如果你的数组是一个对象组合 var arr= [ {"key":"key1","value":"value1","createTime":"124573216"}, {"key":"key2","value":"value2","createTime":"124593216"}, {"key":"key3","va

使用 rhc 工具连接 openshift 服务器

上一篇分享了, 如何使用 gem 在mac 环境下安装 rhc工具 这一篇是关于 如何使用 rhc 工具连接 openshift 服务器 如何使用 rhc 首先运行 rhc setup ➜ /Users/zhangzhi >rhc setup OpenShift Client Tools (RHC) Setup Wizard This wizard will help you upload your SSH keys, set your application namespace, and check that other programs like Git are pr

gem install rhc mac环境安装 openshift 连接工具 rhc

什么是 openShift openshift免费空间是Red Hat的平台即服务的云计算平台(PaaS) 支持Java,PHP,Python,Perl,Ruby以及MySQL Database,phpMyAdmin,MongoDB NoSQL Database,Cron 1.4等应用 OpenShift服务器采用的是AmazonEC2数据中心,月流量不限制,且支持绑定顶级域名 目前Red Hat的OpenShift 上可以免费创建三个app,提供512MB内存和1G 存储空间,OpenShift免费空间的稳定性是有目共睹的 该空间在2012年十大优秀免费空间中排名榜首,虽然

SSH 数据转发 参数设置

SSH 是什么 ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器 ssh 既可以登录远程服务器,还能进行数据转发 今天就是要和大家分享关于 SSH 数据转发的功能 SSH 数据转发原理 ssh 可以绑定本地端口,实现一个 socket 监听. 当本地被监听的端口发过来数据时, ssh 会转发到远程目标服务器上,目标服务器将请求的到的数据再回发回来. SSH 参数 -1:强制使用ssh协议版本1; -2:强制使用ssh协议版本2; -4:强制使用IPv4地址; -6:强制使用IPv6地址; -A:开启认证代理连接转发功能; -a:关闭

angular.js 官方应用 angular-phonecat 下载 运行 学习

angular-phonecat 是什么 它是google 官方开发的一个 angular.js入门学习web应用程序. 此web应用程序是介绍 android 手机的一个站点 从哪里下载 angular-phonecat git 直接下载克隆项目 git clone --depth=20 https://github.com/angular/angular-phonecat.git 可以学习什么? angular.js 框架的构建,测试,学习 后端 node.js 的搭配使用 如何让它运行起来 首先安装 node.js 运行的依赖包 npm install 其中有几个

回到顶部