promise参数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
promise参数
Promise(承诺)是JavaScript中的一种异步编程方式,它是一种特殊的对象,用于表示一个异步操作的最终完成或失败及其结果值。
在Promise中,我们可以指定一些回调函数,这些回调函数会在Promise的状态发生改变时被触发,从而实现异步编程。
在使用Promise时,我们可以向Promise构造函数中传递一个函数,这个函数会被立即执行。
这个函数接受两个参数,一个是resolve 函数,一个是reject函数。
resolve函数用于将Promise状态从“未完成”变为“完成”,并将结果传递给后续的回调函数;reject函数用于将Promise状态从“未完成”变为“失败”,并将错误信息传递
给后续的回调函数。
除了构造函数中传递的函数外,Promise还可以接受一个参数,这个参数是一个对象,用于指定一些Promise的行为和参数。
这个对象中可以包含一些属性,这些属性用于指定Promise的参数。
下面是一些常用的Promise参数:
1. Promise.prototype.then(onFulfilled, onRejected)
Promise.prototype.then方法用于指定Promise状态发生变化
时的回调函数。
它接受两个参数,一个是onFulfilled函数,一个是onRejected函数。
当Promise状态从“未完成”变为“完成”时,
会触发onFulfilled函数;当Promise状态从“未完成”变为“失败”时,会触发onRejected函数。
onFulfilled函数接受一个参数,这个参数是Promise的结果值。
onRejected函数也接受一个参数,这个参数是Promise的错误信息。
如果onRejected函数没有被指定,Promise会将错误信息传递给后续的回调函数。
2. Promise.prototype.catch(onRejected)
Promise.prototype.catch方法用于指定Promise状态发生错误时的回调函数。
它接受一个参数,这个参数是onRejected函数。
当Promise状态从“未完成”变为“失败”时,会触发onRejected函数。
3. Promise.prototype.finally(onFinally)
Promise.prototype.finally方法用于指定Promise状态发生变化时的回调函数,不管Promise状态是“完成”还是“失败”,都会触发这个函数。
它接受一个参数,这个参数是onFinally函数。
onFinally函数没有参数,它只是用于在Promise完成或失败后执行一些清理操作。
如果onFinally函数返回一个Promise,后续的回调函数会等待这个Promise执行完毕后再继续执行。
4. Promise.all(iterable)
Promise.all方法用于将多个Promise合并成一个Promise。
它接受一个iterable对象,这个对象中包含多个Promise实例。
当所有的Promise实例都完成时,Promise.all返回一个新的Promise实例,这个新的Promise实例的状态为“完成”,并将所有Promise实例的结果值按照顺序存储在一个数组中。
如果其中任何一个Promise实例失败了,Promise.all会立即将
新的Promise实例的状态设置为“失败”,并将第一个失败的Promise 实例的错误信息传递给后续的回调函数。
5. Promise.race(iterable)
Promise.race方法用于将多个Promise合并成一个Promise。
它接受一个iterable对象,这个对象中包含多个Promise实例。
当其中任何一个Promise实例完成或失败时,Promise.race返回一个新的Promise实例,这个新的Promise实例的状态和第一个完成或失败的Promise实例的状态相同,并将第一个完成或失败的Promise实例的结果值或错误信息传递给后续的回调函数。
6. Promise.resolve(value)
Promise.resolve方法用于将一个值或一个Promise实例转换为一个Promise实例。
如果传递的是一个值,Promise.resolve会返回一个状态为“完成”的Promise实例,并将这个值作为结果值;如果传递的是一个Promise实例,Promise.resolve会返回这个Promise 实例。
7. Promise.reject(reason)
Promise.reject方法用于将一个错误信息转换为一个Promise 实例。
它接受一个参数,这个参数是错误信息。
Promise.reject会返回一个状态为“失败”的Promise实例,并将错误信息作为参数传递给后续的回调函数。
在使用Promise时,我们可以根据需要选择不同的参数,以实现不同的异步编程需求。
同时,我们也需要注意Promise的一些特性和
限制,以避免在使用Promise时出现一些常见的错误和问题。