fix syntax

This commit is contained in:
Fengda HUANG 2015-10-23 23:03:16 +08:00
parent 7cc62662e6
commit af5238451a

View file

@ -4,7 +4,7 @@
最近萌发了一个想法写游戏引擎之前想着做一个JavaScript前端框架。看看这个思路是怎么来的。 最近萌发了一个想法写游戏引擎之前想着做一个JavaScript前端框架。看看这个思路是怎么来的。
##一、[Lettuce](https://github.com/phodal/lettuce)构建过程 ##[Lettuce](https://github.com/phodal/lettuce)构建过程
> Lettuce是一个简约的移动开发框架。 > Lettuce是一个简约的移动开发框架。
@ -65,66 +65,70 @@
但是显然他们都太重了。事实上对于一个库来说80%的人只需要其中20%的代码。于是,找到了[https://github.com/stackp/promisejs](https://github.com/stackp/promisejs),看了看用法,这就是我们需要的功能: 但是显然他们都太重了。事实上对于一个库来说80%的人只需要其中20%的代码。于是,找到了[https://github.com/stackp/promisejs](https://github.com/stackp/promisejs),看了看用法,这就是我们需要的功能:
function late(n) { ```javascript
var p = new promise.Promise(); function late(n) {
setTimeout(function() { var p = new promise.Promise();
p.done(null, n); setTimeout(function() {
}, n); p.done(null, n);
return p; }, n);
} return p;
}
late(100).then( late(100).then(
function(err, n) { function(err, n) {
return late(n + 200); return late(n + 200);
} }
).then( ).then(
function(err, n) { function(err, n) {
return late(n + 300); return late(n + 300);
} }
).then( ).then(
function(err, n) { function(err, n) {
return late(n + 400); return late(n + 400);
} }
).then( ).then(
function(err, n) { function(err, n) {
alert(n); alert(n);
} }
); );
```
接着打开看看Promise对象有我们需要的功能但是又有一些功能超出我的需求。接着把自己不需要的需求去掉这里函数最后就变成了 接着打开看看Promise对象有我们需要的功能但是又有一些功能超出我的需求。接着把自己不需要的需求去掉这里函数最后就变成了
function Promise() { ```javascript
this._callbacks = []; function Promise() {
this._callbacks = [];
}
Promise.prototype.then = function(func, context) {
var p;
if (this._isdone) {
p = func.apply(context, this.result);
} else {
p = new Promise();
this._callbacks.push(function () {
var res = func.apply(context, arguments);
if (res && typeof res.then === 'function') {
res.then(p.done, p);
}
});
} }
return p;
};
Promise.prototype.then = function(func, context) { Promise.prototype.done = function() {
var p; this.result = arguments;
if (this._isdone) { this._isdone = true;
p = func.apply(context, this.result); for (var i = 0; i < this._callbacks.length; i++) {
} else { this._callbacks[i].apply(null, arguments);
p = new Promise(); }
this._callbacks.push(function () { this._callbacks = [];
var res = func.apply(context, arguments); };
if (res && typeof res.then === 'function') {
res.then(p.done, p);
}
});
}
return p;
};
Promise.prototype.done = function() { var promise = {
this.result = arguments; Promise: Promise
this._isdone = true; };
for (var i = 0; i < this._callbacks.length; i++) { ```
this._callbacks[i].apply(null, arguments);
}
this._callbacks = [];
};
var promise = {
Promise: Promise
};
需要注意的是: ``License``不同的软件有不同的License如MIT、GPL等等。最好能在遵循协议的情况下使用别人的代码。 需要注意的是: ``License``不同的软件有不同的License如MIT、GPL等等。最好能在遵循协议的情况下使用别人的代码。
@ -132,34 +136,37 @@
由于现有的一些Ajax库都比较最后只好参照着别人的代码自己实现。 由于现有的一些Ajax库都比较最后只好参照着别人的代码自己实现。
Lettuce.get = function (url, callback) { ```javascript
Lettuce.send(url, 'GET', callback); Lettuce.get = function (url, callback) {
}; Lettuce.send(url, 'GET', callback);
};
Lettuce.load = function (url, callback) { Lettuce.load = function (url, callback) {
Lettuce.send(url, 'GET', callback); Lettuce.send(url, 'GET', callback);
}; };
Lettuce.post = function (url, data, callback) { Lettuce.post = function (url, data, callback) {
Lettuce.send(url, 'POST', callback, data); Lettuce.send(url, 'POST', callback, data);
}; };
Lettuce.send = function (url, method, callback, data) {
data = data || null;
var request = new XMLHttpRequest();
if (callback instanceof Function) {
request.onreadystatechange = function () {
if (request.readyState === 4 && (request.status === 200 || request.status === 0)) {
callback(request.responseText);
}
};
}
request.open(method, url, true);
if (data instanceof Object) {
data = JSON.stringify(data);
request.setRequestHeader('Content-Type', 'application/json');
}
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
request.send(data);
};
```
Lettuce.send = function (url, method, callback, data) {
data = data || null;
var request = new XMLHttpRequest();
if (callback instanceof Function) {
request.onreadystatechange = function () {
if (request.readyState === 4 && (request.status === 200 || request.status === 0)) {
callback(request.responseText);
}
};
}
request.open(method, url, true);
if (data instanceof Object) {
data = JSON.stringify(data);
request.setRequestHeader('Content-Type', 'application/json');
}
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
request.send(data);
};