1、Promise中then是异步的

2、Promise 的then里面两个回调,默认第一个resolve,第二个reject;不会进入catch;如果只有一个回调则进入catch

 var p1=new Promise((resolve,rej) => {
console.log('没有resolve')
//throw new Error('直接throw错误,替代reject') 或者 reject(new Error(/*Error*/));
rej('失败了') })
//then里面两个回调,默认第一个resolve,第二个reject;不会进入catch;如果只有一个回调则进入catch
p1.then(data =>{
console.log('data::',data);
},err=> {
console.log('err::',err)
}).catch(
res => {
console.log('catch data::', res)
})
//输出:
//没有resolve
//err:: 失败了

3、链式传值

/*例1.使用Promise.resolve()启动*/
let task1 = (value1)=>value1+;
let task2 = (value2)=>value2+;
let task3 = (value3)=>{console.log(value3+)}; Promise.resolve().then(task1).then(task2).then(task3);//console => 7 //如果需要resolve()往后传递多个参数,不能直接写resolve(a1,a2,a3),这样只能拿到第一个要传的参数,需要以数组或对象去传递
let obj = {a1:a1,a2:a2,a3:a3};
resolve(obj)
//or
let arr =[a1,a2,a3];
resolve(arr);

4、链式调用函数

then方法提供一个供自定义的回调函数,若传入非函数,则会忽略当前then方法。
回调函数中会把上一个then中返回的值当做参数值供当前then方法调用。
then方法执行完毕后需要返回一个新的值给下一个then调用(没有返回值默认使用undefined)。
每个then只可能使用前一个then的返回值。

let func = function() {
return new Promise((resolve, reject) => {
resolve('旧值');
});
}; let nb = function() {
return '新值';
} //1、输出:新值
func().then(function () {
return nb();
}).then(resp => {
console.warn(resp);
console.warn('1 =========<');
}); //then 后回调里面的内容,没有返回值,所以undefine
//2、输出:undefine
func().then(function () {
nb();
}).then(resp => {
console.warn(resp);
console.warn('2 =========<');
}); //如果 onFulfilled 不是函数,其必须被忽略
//如果 onFulfilled 是函数: //这里注意cb()的返回值不是函数,所以会被忽略,而输出上一个then的返回值 //3、输出:旧值
func().then(cb()).then(resp => {
console.warn(resp);
console.warn('3 =========<');
}); //cb是识别为函数
//4、输出:新值
func().then(cb).then(resp => {
console.warn(resp);
console.warn('4 =========<');
});

资源:

https://segmentfault.com/a/1190000010420744?utm_source=tag-newest

Vue:Promise概要的更多相关文章

  1. vue安装概要以及vue测试工具

    一.概述 1.安装node,去node官网 2.新建一个项目,通过npm init命令初始化,即创建一个package.json文件 3.用命令 npm install vue -g 全局安装vue( ...

  2. vue:概要

    一.环境 #安装nodejs-官网安装包配置环境变量 node -v #安装webpack npm install webpack -g #安装vue-cli npm install vue-cli ...

  3. vue语法概要二

    函数 用途 类别 v-html 用于输出html格式的数据 输出 v-bing 用于输出值 输出 v-model 双向绑定 输入和输出 v-if 逻辑判断 分支语句 v-else 同上 分支语句 v- ...

  4. Vue.js 很好,但会比 Angular 或 React 更好吗?

    文章转自:http://www.oschina.net/translate/vuejs-is-good-but-is-it-better-than-angular-or-rea Vue.js 是一个用 ...

  5. Vue iview Tree组件实现文件目录-基础实现

    注册页面路由 router/router.js { path: 'folder_tree', name: 'folderTree', component: () => import('@/vie ...

  6. Vue2开发大全

    参考资料: vuex element qs.js axios.js vue promise 关于ES6的Promise的使用深入理解  vue2 设置网页title的问题 Mint UI websto ...

  7. 一些自己常用的cdn

    1.vue <script src="http://cdn.bootcss.com/vue/1.0.28-csp/vue.js"></script> < ...

  8. 简述前后端项目RSA+AES加解密

    一.登录机制 在项目中,我们可以大致得出一个登录的过程,主要分为  登录验证.登录保持.退出三个部分.登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确 ...

  9. 速查列表:Apache SkyWalking OAL 的 域(Scopes)

    OAL简介 在流模式(Streaming mode)下,SkyWalking 提供了 观测分析语言(Observability Analysis Language,OAL) 来分析流入的数据. OAL ...

随机推荐

  1. js实现根据文本下标位置添加特殊标识

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. RSA 分段加解密【解决“不正确的长度”的异常】

    RSA 是常用的非对称加密算法.最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致. .NET Framework 中提供的 RSA 算法规定: 待加密的字节数不能超过密钥的 ...

  3. 现代php编程

    自动加载__autolaod和spl_autoload_register() 自动加载就是指如果找不到某个类如何处理的方式,具体可参见此文,可以说spl_autoload_register是更加高级, ...

  4. 机器学习&深度学习基础(tensorflow版本实现的算法概述0)

    tensorflow集成和实现了各种机器学习基础的算法,可以直接调用. 代码集:https://github.com/ageron/handson-ml 监督学习 1)决策树(Decision Tre ...

  5. 通过T-SQL语句实现数据库加解密功能

    CREATE TABLE [dbo].[Users] ( [U_nbr] NVARCHAR(20) NOT NULL PRIMARY KEY, [Pwd] nvarchar(MAX) ) --加密 D ...

  6. 记一次wordpress安装过程中遇到的问题及解决办法

    Q:无法建立目录wp-content/uploads/2017/03.有没有上级目录的写权限?A:执行chmod 777 wp-content/ 提升目录权限 Q:安装主题或安装插件的时候,用到FTP ...

  7. JSP之开发环境搭建

    1.下载JDK1.8(或JDK1.7),并进行安装和配置,主要是配置环境变量JAVA_HOME及Path. 2.下载并配置Tomcat8.0(或Tomcat7.0). Windows平台请下载Tomc ...

  8. java使用代理请求https

    我本来在我本机写的代码,本机电脑是可以连外网没限制,对于https和http都可以.但是放在linux服务器上后,因为VM限制了不能访问外网,而且有ssl验证所以就一直报错,要么是连不上线上请求,要么 ...

  9. 处理MySQL的ibdata1文件过大问题

    ibdata1文件是什么? ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据.撤销记录.修改buffer和双写buffer.如果file-per-tabl ...

  10. 使用redis原生list结构作为消息队列取代celery框架。

    1.web后台对大批量的繁重的io任务需要解耦使用分布式异步技术,否则会使接口阻塞,并发延迟,一般就选celery好了.此篇的取代主要是针对取代celery的worker模式.没有涉及到周期和定时模式 ...