起初,我认为resolve
只需将参数传递给函数即可then
,所以我尝试了这个
const promise = new Promise((resolve, reject) => {
resolve(new Promise(resolve => resolve(2333)))
})
// promise.then(innerPromise => {
// innerPromise.then(num => console.log(num))
// })
promise.then(num => console.log(num))
注释的行出现错误:innerPromise.then is not a function
,所以我假设resolve
如果你有一个promise作为参数,首先会帮你处理里面的promise
所以我尝试了reject
,我认为会是一样的
const promise = new Promise((resolve, reject) => {
reject(new Promise(resolve => resolve(2333)))
})
promise.then(null, innerPromise => {
innerPromise.then(num => console.log(num))
})
// promise.then(null, num => console.log(num))
未注释的行将记录2333
,注释的行将简单地记录被拒绝的Promise
实例
Resolve 是一个回调,用于返回另一个 Promise 的值或结果。
因此,当您在第一个块中执行以下代码时:
const promise = new Promise((resolve, reject) => {
resolve(new Promise(resolve => resolve(2333)))
})
promise.then(innerPromise => {
console.log(innerPromise)
// innerPromise.then(num => console.log(num))
})
promise.then(num => console.log(num))
你会发现Resolve会自动执行内部函数,从而得到resolve内部函数的最终结果。其次,明确提到“解决”返回一个 'Value'而不是可调用对象。因此,您不能像函数一样调用 Promise 的结果。
在拒绝的情况下,拒绝回调用于拒绝带有提供的原因或错误的承诺。您可以返回任何语句(代表错误)或从错误代码返回错误消息的可调用对象。 (这就是我使用拒绝从生成的错误代码中获取消息的方式)
好吧,您可以在这里阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)