美文网首页
promise函数详解

promise函数详解

作者: 行心1998 | 来源:发表于2020-08-23 15:23 被阅读0次

复制到你的vscode上看
//promise最核心的思想:用同步的流程解决异步的操作

//Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 方法和 reject 方法。
let promise =new Promise((reject,resolve)=>{

})

//如果异步操作成功,则用 resolve 方法将 Promise 对象的状态,从 pending 变为 resolved,并且向外传递执行成功后的数据;

//如果异步操作失败,则用 reject 方法将 Promise 对象的状态,从 pending 变为 rejected,并且向外传递执行失败后的数据
//promise的then方法可以接收resolve和reject传过来的数据 ;then方法有两个是回调函数的参数,分别对应resolve和reject
return new Promise((reject,resolve)=>{

}).then((data)=>{
//data参数是自定义的
console.log('resolve:'+data)
},(err)=>{
//err参数是自定义的
console.log('reject:'+data)
})
//每个 Promise 都会提供一个 then() 函数,和一个 catch(),实际上是 then(null, ...) 函数
// 我们可以在then()中做三件事,
// 1. return 另一个 promise
// 2. return 一个同步的值 (或者 undefined)
// 3. throw 一个同步异常 throw new Eror('');

// 为什么要有Promise函数?
function a(param){
setTimeout(() => {
return '异步操作'+param
}, 1000);
}
console.log(a(1))
//这里输出的是undefined,因为执行a函数时,还没有执行return

//可以通过回调函数实现异步输出
function a(param,callback){
param =param+1
setTimeout(() => {
param =param+1
// return '异步操作'+param
callback('异步操作:'+param)
}, 1000);
}
console.log(a(1,function(a){
console.log(a+' 211')
}))
//这里function(a){...}实际上是在settimeout中执行的。所以settimeout那个延迟了的一秒不能影响他
//虽然回调函数可以解决这个问题,假设我们需要在异步操作1执行后,执行异步操作2;异步操作2执行后执行异步操作3,这样层层嵌套
//那么就会陷入回调地狱,所以我们使用Promise函数解决异步执行问题。

return new Promise((reject,resolve)=>{
setTimeout(() => {
resolve({a:1,b:2,c:'这是异步操作成功resovle返回的数据'})
reject('异步操作失败1')
}, 1000);
}).then((data)=>{
//data参数是自定义的
console.log('resolve:'+data)
},(err)=>{
//err参数是自定义的
console.log('reject:'+data)
})

相关文章

  • promise函数详解

    复制到你的vscode上看//promise最核心的思想:用同步的流程解决异步的操作 //Promise 构造函数...

  • Promise详解

    Promise详解词:Promise,resolve,reject,Prepending,Resolve,Reje...

  • Promise

    ES规定,Promise对象是一个构造函数,用来生成Promise实例 Promise 构造函数接受一个函数作为参...

  • 循环多个 Promise 异步函数

    了解Promise 循环多个 Promise 异步函数

  • 如何正确的使用Promise

    promise用法 对比传统回调函数与Pormise的写法 传统回调函数 Promise的写法 Promise要比...

  • Promise、Generator 函数

    Promise对象是一个构造函数,用来生成Promise实例 resolve函数改变promise状态从Pendi...

  • Promise函数介绍和用法

    Promise函数(异步请求操作可用) Promise用法 Promise其实是一个构造函数 ! 使用方法如下: ...

  • C/C++的30个冷知识

    数据格式详解 输入输出函数详解 字符串处理函数详解 内存函数详解 类详解 数据格式详解 2^8=256(同样是一个...

  • 使用 ES6 实现一个简单的 Promise

    Promise 基本结构 构造函数 Promise 必须接受一个函数作为参数,同时这个函数又包含 resolve ...

  • promise用法

    Promise笔记 1.promise构造函数 Promise是一个构造函数,传参是一个function(reso...

网友评论

      本文标题:promise函数详解

      本文链接:https://www.haomeiwen.com/subject/ffoijktx.html