博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Promise 命令的案例
阅读量:3931 次
发布时间:2019-05-23

本文共 1259 字,大约阅读时间需要 4 分钟。

function foo(){    return new Promise((resolve,reject)=>{        let random = Math.random();  //声明随机数        if(random>0.5){            resolve(random);        } else{            reject(random);        }    });}//调用foo().then((a)=>{    console.log('success:',a);}).catch((b)=>{    console.log('error:',b);});

上面代码中,函数foo返回一个Promise对象,Promise对象的参数为resolve,reject,箭头函数中声明一个随机数,如果大于0.5,则返回resolve,调用then函数,输出success。



cnost p1 = new Promise(function(resolve,reject){    setTimeout(()=> reject(new Error('fail')),3000)})const p2 = new Promise((resolve,reject)=>{    setTimeout(()=>{        resolve(p1),1000    })})p2.then(()=>{    console.log(result);}).catch(()=>{    console.log(error);});//4s后返回  Error:fail

上面代码中,p1是一个 Promise,3 秒之后变为rejectp2的状态在 1 秒之后改变,resolve方法返回的是p1。由于p2返回的是另一个 Promise,导致p2自己的状态无效了,由p1的状态决定p2的状态。所以,后面的then语句都变成针对后者(p1)。又过了 2 秒,p1变为reject,导致触发catch方法指定的回调函数。



new Promise((resolve,reject)=>{    resolve(1);    console.log(2);}).then((a)=>{    console.log(a);});//2//1

上面代码中,调用resolvereject并不会终结 Promise 的参数函数的执行。



new Promise((resolve, reject) => {  return resolve(1);  // 后面的语句不会执行  console.log(2);})

上面代码中,调用resolvereject以后,Promise 的使命就完成了,后继操作应该放到then方法里面,而不应该直接写在resolvereject的后面。

 

 

                  ------------------------本文完------------------------

 

 

 

 

转载地址:http://jwxgn.baihongyu.com/

你可能感兴趣的文章
Linux下逻辑地址-线性地址-物理地址图解
查看>>
vim安装SrcExpl 插件,实现自动显示跳转函数及变量定义功能
查看>>
linux 版本中 i386/i686/x86-64/pcc 等... 的区别
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记11 --- Linear Models for Classification
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
查看>>
线性代数 | (2) 矩阵Part Two
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记13 --- Hazard of Overfitting
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记14 --- Regularization
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记15 --- Validation
查看>>
机器学习 | 台大林轩田机器学习基石课程笔记16 --- Three Learning Principles
查看>>
机器学习 | 台大林轩田机器学习技法课程笔记1 --- Linear Support Vector Machine
查看>>
机器学习 | 台大林轩田机器学习技法课程笔记2 --- Dual Support Vector Machine
查看>>
线性代数 | (3) 行列式
查看>>
学术英语 | (1) wordList1
查看>>
机器学习 | 台大林轩田机器学习技法课程笔记3 --- Kernel Support Vector Machine
查看>>
机器学习 | 台大林轩田机器学习技法课程笔记7 --- Blending and Bagging
查看>>
学术英语 | (6) WordList6
查看>>
线性代数 | (5) 线性方程组
查看>>
学术英文 | (7) Unit3Words
查看>>
线性代数 | (6) 相似对角形
查看>>