CocosCreatord的Promise和git等

1、什么是 Promise?

首先我们来了解 Promise 到底是怎么一回事
Promise 是抽象的异步处理对象,以及对其进行各种操作的组件。我知道这样解释你肯定还是不明白 Promise 是什么东西,Promise可理解成一个 容器,里面装着将来才会结束的一个事件的结果,这个事件通常是一个异步操作。

Promise最初被提出是在 E语言中, 它是基于并列/并行处理设计的一种编程语言。Javascript 在 ES6 之后也开始支持 Promise 特性了,用来解决异步操 的问题。这里顺便解释一下什么是 ES6, ECMAScript 是 Javascript 语言的国际标准,Javascript 是 ECMAScript 的有一个实现, 而ES6(全称 ECMAScript 6)是这个标准的一个版本。

Javascript 支持 Promise 实现是为了解决异步操作的问题。谈到异步操作,你可能会说,Javascript 不是可以用回调 函数处理异步操作吗? 原因就是 Promise 是一种更强大的异步处理方式,而且她有统一的 API 和规范,下面分别看看传统处理异步操作和 Promise 处理 异步操作有哪些不同。

使用回调函数处理异步操作:
login(“http://www.r9it.com/login.php”, function(error, result){
// 登录失败处理
if(error){
throw error;
}
// 登录成功时处理
});

Node.js等则规定在JavaScript的回调函数的第一个参数为 Error 对象,这也是它的一个惯例。 像上面这样基于回调函数的异步处理如果统一参数使用规则的话,写法也会很明了。 但是,这也仅是编码规约而已,即使采用不同的写法也不会出错。 而Promise则是把类似的异步处理对象和处理规则进行规范化, 并按照采用统一的接口来编写,而采取规定方法之外的写法都会出错。

Promise则是把类似的异步处理对象和处理规则进行规范化, 并按照采用统一的接口来编写
使用 Promise 处理异步操作:
var promise = loginByPromise(“http://www.r9it.com/login.php”);
promise.then(function(result){
// 登录成功时处理
}).catch(function(error){
// 登录失败时处理
});

Promise 的状态
实例化的 Promise 有三个状态:
Fulfilled: has-resolved, 表示成功解决,这时会调用 onFulfilled.
Rejected: has-rejected, 表示解决失败,此时会调用 onRejected.
Pending: unresolve, 表示待解决,
Promise.prototype.catch方法是.then(null, rejection)的别名,用于指定发生错误时的回调函数。
Promise.prototype.catch()
Promise.all() Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。用来处理组合 Promise 的逻辑操作
Promise.race() Promise.race方法同样是将多个Promise实例,包装成一个新的Promise实例。 与 Promise.all 不同的是,只要有一个 promise 对象进入 FulFilled 或者 Rejected 状态的话,Promise.rece 就会继续进行后面的处理
Promise.resolve() Promise.resolve 方法有2个作用,一个就是前面我们说的,它是通过静态方法创建 Promise 实例的渠道之一, 另一个作用就是将 Thenable 对象转换为 Promise 对象
Thenable 对象转换为 Promise 对象

你可能感兴趣的:(Cocos,Create)