关于异步Promises】的更多相关文章

英文原文:What's The Point Of Promises? 迄今为止,可能每个JavaScript开发者和他们的祖母都听说过Promises.如果你没有,那么你即将会.promises的概念是由CommonJS小组的成员在 Promises/A规范 中提出来的.Promises被逐渐用作一种管理异步操作回调的方法,但出于它们的设计,它们远比那个有用得多.事实上,由于它们的多种用法,有无数人告诉我——在我写过一些关于promises的东西后——我“遗漏了promises的重点”.那么什么…
迄今为止,可能每个JavaScript开发者和他们的祖母都听说过Promises.如果你没有,那么你即将会.promises的概念是由CommonJS小组的成员在 Promises/A规范 中提出来的.Promises被逐渐用作一种管理异步操作回调的方法,但出于它们的设计,它们远比那个有用得多.事实上,由于它们的多种用法,有无数人告 诉我——在我写过一些关于promises的东西后——我“遗漏了promises的重点”.那么什么是promises的重点呢? 一点关于Promises的东西 在我开…
在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View))JavaScript框架,其是Google推出的SPA(single-page-application)应用框架,其为我们的web应用开发增加不少魔法变换. 我可以花整天的时间告诉你为什么你必须在新项目尝试angular.js,但是我觉得还是百说不如一练. 数据绑定和scopes(作用域) 首先…
因为工作刚接触到dojo框架,网上找各种资料,发现很少很少(大多是以前的),只能看官网学习了,英文不行,一边翻译一边学习,还能学点单词...呵呵 我在Apache下运行Dojo demo,初学,希望有理解不对的地方指点指点... 一.先总的来认识一下dojo的工具包: ①dojo dojo框架的核心包.dojo里普遍实用的软件包.模块都在里面,如:Ajax.DOM操作.类编程.事件.异步Promises.数据存储.拖放以及本地化与国际化等... ②dijit 小部件框架和内建的小部件集. ③do…
在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View))JavaScript框架,其是Google推出的SPA(single-page-application)应用框架,其为我们的web应用开发增加不少魔法变换. 我可以花整天的时间告诉你为什么你必须在新项目尝试angular.js,但是我觉得还是百说不如一练. 数据绑定和scopes(作用域) 首先…
首先,为什么要使用Deferred? 先来看一段AJAX的代码: var data; $.get('api/data', function(resp) { data = resp.data; }); doSomethingFancyWithData(data); 这段代码极容易出问题,请求时间多长或者超时,将会导致我们获取不到data.只有把请求设置为同步我们才能够等待获取到data,才执行我们的函数.但是这会带来阻塞,导致用户界面一直被冻结,对用户体验有很严重的影响.所以我们需要使用异步编程,…
1.angularJs简介 angularJs是一个MV*的javascript框架(Model-View-Whatever,不管是MVVM还是MVC,统归MDV(model drive view)),其实是由google推出的SPA(single-page-application)应用框架.它的用于 数据在后端和前端之间的双向绑定.这就意味着你在后台改变数据,这些变动立刻就会出现在view上. 在加载的时候,angular会将你的dom树和javascript转向一个angular app .…
一年多前,巧遇angular,觉得是个非常优秀的mv*框架,当时项目使用了MooTools.因此也没继续研究.刚好最近,同事组中有用到ng,并且要做个分享.因此就将from Why Does Angular.js Rock? 重新看了遍,加之中文的翻译有点问题,就在原有翻译基础上,做了点改动.顺便把丢失的图片给补充下.--last update at 20150915 PS:斜体加粗为新增/改动内容 原demo的例子都在plunker上,传送门: http://plnkr.co/users/gr…
什么是 Promises Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口. 传统的回调函数 说到JavaScript的异步编程处理,通常我们会想到回调函数,如下面的代码: getFileAsync("1.txt", function(error, result){ if(error){ throw error; } // 取得成功时的处理 }); 上面的代码定义了一个获取文件内容的函数,读取完成后回调用传入的回调函数,对于下面…
Promises与Javascript异步编程 转载:http://www.zawaliang.com/2013/08/399.html 在如今都追求用户体验的时代,Ajax应用真的是无所不在.加上这些年浏览器技术.HTML5以及CSS3等的发展,越来越多的富Web应用出现:在给与我们良好体验的同时,Web开发人员在背后需要处理越来越多的异步回调逻辑. 笔者对最近读完的<Async Javascript-Build More Responsive Apps with Less Code>(Ja…
在如今都追求用户体验的时代,Ajax应用真的是无所不在.加上这些年浏览器技术.HTML5以及CSS3等的发展,越来越多的富Web应用出现:在给与我们良好体验的同时,Web开发人员在背后需要处理越来越多的异步回调逻辑. 笔者对最近读完的<Async Javascript-Build More Responsive Apps with Less Code>(Javascript异步编程-设计快速响应的网络应用)一书以及部分资料,整理了我认为比较重要的一些点以及容易理解错的地方,使大家对 Promi…
我最喜欢的网站之一是BerkshireHathaway.com--它简单,有效,并且自1997年推出以来一直正常运行.更值得注意的是,在过去的20年中,这个网站很有可能从未出现过错误.为什么?因为它都是静态的.它自20多年前推出以来几乎一样.如果你预先拥有所有数据,那么构建网站非常简单.不幸的是,现在大多数网站都没有.为了弥补这一点,我们发明了"模式"来处理为我们的应用程序提取外部数据.像大多数事情一样,这些模式都随着时间的推移而发生变化.在这篇文章中,我们将分析这三种最常见的模式的优…
http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/ 或 http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html   当用 Javascript 处理异步(asynchronous )时,你可以使用很多工具.本文说明四个异步的方法和工具,以及它们的优势:回调(Callbacks).监听(Listeners).流程控制…
[译]异步JavaScript的演变史:从回调到Promises再到Async/Await https://www.i-programmer.info/programming/theory/8864-managing-asynchronous-code-callbacks-promises-a-asyncawait.html…
我们在编写Nodejs程序时,经常会用到回调函数,在一个操作执行完成之后对返回的数据进行处理,我简单的理解它为异步编程. 如果操作很多,那么回调的嵌套就会必不可少,那么如果操作非常多,那么回调的嵌套就会变得让人无法忍受了. 我们知道的Promises就是问了解决这个问题而提出来的.然而,promises并不是一种新的功能,它只是一种新的写法,原来横向发展的回调函数,被排成了队竖向发展. 然而,Generator不同,它是一种新的解决方案. 文章中提到的所有代码都可以在这里找到源码:[查看源码].…
前言  上周5在公司作了关于JS异步编程模型的技术分享,可能是内容太干的缘故吧,最后从大家的表情看出"这条粉肠到底在说啥?"的结果:(下面是PPT的讲义,具体的PPT和示例代码在https://github.com/fsjohnhuang/ppt/tree/master/apm_of_js上,有兴趣就上去看看吧! 重申主题  <异步编程模型>这个名称确实不太直观,其实今天我想和大家分享的就是上面的代码是如何演进成下面的代码而已. a(function(){ b(functi…
众所周知,JavaScript 的执行环境是单线程的,所谓的单线程就是一次只能完成一个任务,其任务的调度方式就是排队,这就和火车站洗手间门口的等待一样,前面的那个人没有搞定,你就只能站在后面排队等着.在事件队列中加一个延时,这样的问题便可以得到缓解. A: 嘿,哥们儿,快点! B: 我要三分钟,你先等着,完了叫你~ A: 好的,记得叫我啊~ 你(C)也等着吧,完了叫你~ C: 嗯! ... 告诉后面排队的人一个准确的时间,这样后面的人就可以利用这段时间去干点别的事情,而不是所有的人都排在队列后抱…
今天有同事问我下面这段代码是什么意思: var MyClass = function() { events.EventEmitter.call(this); // 这行是什么意思? }; util.inherits(MyClass, events.EventEmitter); // 还有这行? 我也不是很明白,于是研究了一下.下面是我的一些体会. Christmas Trees和Errors 如果你写过JavaScript或NodeJS代码,你也许会对callback地狱深有体会.每次当你进行异…
背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeout/setInterval CSS3 Transition/Animation HTML5 Web Database postMessage Web Workers Web Sockets and more… 后面几个是CSS3 HML5加入的新API.这些接口都是会产生异步的操作 比如本人的一个…
Promises是一种异步编程模型,通过一组API来规范化异步操作,这样也能够让异步操作的流程控制更加容易. 下面的代码是假设执行一个异步队列,每一项都会使用上一项返回的数据: function nest(url, params, fn) { $.getJSON(url, params, function(data) { console.log(data); fn.call(this); }); } nest('promise.php', {a:1}, function(data1) { nes…
NodeJs的最大特性就是"异步" 目前在NodeJs里实现异步的方法中,使用“回调”是最常见的. 其实还有其他4种实现异步的方法: 在此以做记录 --- http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html --- 你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务…
本文来自四火哥的翻译 CommonJS是一组javascript编程规范,而promise是其中之一. 简而言之,promises是一种令代码的异步行为变得更加优雅的软件抽象.在基本的定义中,代码可能一直是这样写的 getTweetsFor("domenic", function (err, results) { // the rest of your code goes here. }); 现在你的方法有一个返回值,叫做promise,它代表操作的最终结果. var promiseF…
node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 该方法是最直接常用的异步操作方式,比如在setInterval 和 ajax等会使用到, 存在缺点有: 1.代码不易阅读并且容易出现金字塔嵌套问题; 2.一般只能对应一个回调函数(一对一),使用上有一定的限制; fs.readFile('/etc/passwd', function (err, d…
本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark,所以排版可能并不优美,建议到原文观看. 另:本文在转载过程中加入了个人的一些理解,对原文进行了修改.修改都使用红色字体!请区分 你可能知道,Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果…
原文地址:http://fex.baidu.com/blog/2015/07/we-have-a-problem-with-promises/ 用Javascript的小伙伴们,是时候承认了,关于 promises 我们一直存在着问题.并非说 promises 本身有问题,Promises/A+ 是极好的. 就我过去数年观察大量 PouchDB API 以及其他 promise-heavy API 的使用者们与这些 API 的搏斗中我发现,最大的问题是: 大部分使用 promises 的小伙伴们…
一.前言 Promises/A是由CommonJS组织制定的异步模式编程规范,有不少库已根据该规范及后来经改进的Promises/A+规范提供了实现 如Q, Bluebird, when, rsvp.js, mmDeferred, jQuery.Deffered()等. 虽然上述实现库均以Promises/A+规范作为实现基准,但由于Promises/A+是对Promises/A规范的改进和增强,因此深入学习Promises/A规范也是不可缺少的. 本文内容主要根据以下内容进行学习后整理而成,若…
一.何为异步   执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上执行下一个任务,当任务执行完成时则会收到通知. 面对IO操作频繁的场景,异步执行模式可在同等的硬件资源条件下提供更大的并发处理能力,也就是更大的吞吐量. 但由于异步执行模式打破人们固有的思维方式,并且任务的发起和任务的执行是分离的,从而提高编程的复杂度. 多线程.多进程均可实现异步模式. 二.从回调…
系列文章 -- ES6笔记系列 很久很久以前,在做Node.js聊天室,使用MongoDB数据服务的时候就遇到了多重回调嵌套导致代码混乱的问题. JS异步编程有利有弊,Promise的出现,改善了这一格局,让异步编程表现出类似“同步式代码”的形式,更好地体现了它的价值. 一.基本概念 1. Promises/A+规范 Promise是一种异步编程的解决方案,本质来说其实它是一种规范,Promises/A+规范 根据规范的定义,一个Promise对象应该至少有以下的基本特点 三个状态 Promis…
假设一个业务场景: 通过rss地址,获取rss并保存于文件,rss地址保存于文件中. 完成该场景的业务需要完成3个任务: 1.从文件中读取rss地址. 2.获取rss. 3.保存于文件. 最后将这三个任务进行整合. 准备: 存放rss地址的文件,address.txt. http://programmer.csdn.net/rss_programmer.html 任务1: 读取rss地址文件的内容并通过callback返回. var getRssAddress = function(path,…
localForage 是一个 JavaScript 库,通过使用简单的.类似 localStorage 风格的 API 实现异步存储,帮助你提升 Web 应用程序的离线经验(通过 IndexedDB 或 WebSQL). localForage 同时支持回调和 Promises 模式两个 API,你可以根据自己的喜好进行选择. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[附源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12款经典的白富美型 jQuery 图片轮播…