Promise(二)
resolve参数
普通参数传递
let promiseFn = ()=>{ return new Promise((resolve,reject)=>{ resolve( { name: 'nano' } ) }) } promiseFn().then( res => { console.log(res) } ) --> { name: 'nano' }
注意: 一次只能传递一个参数
传递promise
let promiseFn=() => { return new Promise((resolve,reject) => { resolve(new Promise((resolve,reject) => { resolve(111) reject(222) })) }) } /* 如果是fulfilled状态 */ promiseFn().then(res => {console.log(res)}) --> 111 * 如果是rejected状态 */ promiseFn().catch(err => {console.log(err)}) --> 222 /* 如果是pending状态则.then或者.catch什么都不打印 */
值得注意: 如果resolve传递的是promise函数,那么当前promise函数状态由resolve中传递的promise函数决定
传入一个对象并且对象中有then方法,那么当前promise函数的状态由对象中的then方法决定,并且该then函数自动创建resolve,reject两个参数
let promiseFn=() => { return new Promise((resolve,reject) => { resolve({ /* thenable */ then(resolve,reject) { resolve(22) reject(33) } }) }) } promiseFn().then(res => {console.log(res)}) --> 22 promiseFn().catch(res => {console.log(res)}) --> 33
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!