简易promise的实现(二)】的更多相关文章

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script> /** * Created by addison on 2014/4/4. */ //简易promise (function (w) { var a = {}; a.get = function (url) { r…
code 上一章中我们遇到了两个问题 1.异步调用顺序的问题 2.then返回一个promise的问题 思考 如果控制异步回调的顺序? 因为异步操的时间作我们无法控制,但是我们只需要按顺序执行回调函数就好了 也就是说 then里面的回调,我们等调用 resolve方法之后(确保异步操作完成),再来执行 操作 用一个变量nextResolve 来保存then的 回调函数 放在resolve之后调用 function MyPromise(fn) { var res = null, callback…
概述 异步编程离不开promise, async, 事件响应这些东西,为了更好地异步编程,我打算探究一下promise的实现原理,方法是自己实现一个简易的promise. 根据promise mdn上的描述,我们主要实现如下api: Promise.prototype.resolve Promise.prototype.reject Promise.prototype.then Promise.all Promise.race 为了更好地性能和使用,我还需要加上惰性求值特性,即:只有调用then…
这一节我们来了解模板和视图.URL的使用. 一.使用模板 在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件.目录结构如下 templates/ base.html 编写base.html文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% block tit…
在上一篇中我们已经初步完成了Task类,如果仅仅是这些,那么没有多大意义,因为网上这类js库有很多,现在我们来些更复杂的使用场景. 如果我们现在有这样一个需求:我们要先读取aa.txt的内容,然后去后台解析,同时bb.txt也要读取解析,然后当两个文件都解析完了,我们还要合并两部分内容存到cc.txt中,最后发个通知说ok了..需求很变态,但是我还是想问有没有好的办法呢?按照最原始的嵌套回调的写法好像不是那么容易了,因为你没法知道aa.txt和bb.txt两个文件的读取解析谁先完成,所以你除了要…
code 最近在思考promise的实现原理 于是准备自己写一个简单的demo 一开始想到的问题有两个 1.链式调用 2.异步顺序执行 ------------------------------------------------- 我们先声明一个异步操作的函数 来模拟异步请求 function http(url){ return new MyPromise(function(resolve,reject){ setTimeout(function(){ resolve(url); },100…
之前简单的介绍了这个基于Java表达式解析工具,现在把代码分享给大家,希望帮助到有需要的人们,这个分享代码中依赖了一些其他的类,这些类大家可以根据自己的情况进行导入,无非就是写字符串处理工具类,日期处理的工具类什么的. 这个Java的表达式解析的工具只用了5个类,而且写得也很简单明了,相信有一些编程经验的可以看懂这些处理的逻辑代码. 1.第一个类:ExpressionNodeType(表达式各个字符节点的类型枚举类) public enum ExpressionNodeType { Unknow…
正文 - 直接搞起 C 实现一个简易的Http服务器 很久以前写过一个简易的http服务器, 后面和一个朋友交流, 反思后发现问题不少.在这里简单搞一下. 让其更加简单去表现httpd本质, 弱化协议业务. 方便当httpd入手学习的demo.  ok, 那直接代码走起 ~ Makefile - 编译部分 all:httpd.exe client.exe httpd.exe : httpd.c gcc -g -Wno-unused-result -Wno-int-to-pointer-cast…
早上醒来,继续讨论deferred对象和primise对象. deferred对象的的方法: 1.$.Deferred()-----生成一个deferred对象 2.deferred.done()-----指定操作成功时的回调函数 3.deferred.fail()------指定操作失败时的回调函数 4.deferred.promise()------没有参数是,返回一个新的deferred对象,该对象的运行状态无法改                                      …
训练我们自己的数据 本篇继续之前的教程,下面我们尝试使用别人定义好的网络,来训练我们自己的网络. 1.准备数据 首先很重要的一点,我们需要准备若干种不同类型的图片进行分类.这里我选择从ImageNet上下载了3个分类的图片(Cat,Dog,Fish). 图片需要分两批:训练集(train).测试集(test),一般训练集与测试集的比例大概是5:1以上,此外每个分类的图片也不能太少,我这里每个分类大概选了5000张训练图+1000张测试图. 找好图片以后,需要准备以下文件: words.txt:分…