Javascript 如何解决括号之间有多个值的JS承诺?
在浏览器的控制台中,我期待3个连续的结果,它们是:熊,狮子,老虎。按这个顺序。我得到的只是熊Javascript 如何解决括号之间有多个值的JS承诺?,javascript,reactjs,promise,Javascript,Reactjs,Promise,在浏览器的控制台中,我期待3个连续的结果,它们是:熊,狮子,老虎。按这个顺序。我得到的只是熊 new Promise((resolve, reject) => { return reject(new Error('no bears')); setTimeout(() => { resolve('Bears', 'Lions', 'Tigers') }, 1000); }) .then(quote => { console.log(qu
new Promise((resolve, reject) => {
return reject(new Error('no bears'));
setTimeout(() => {
resolve('Bears', 'Lions', 'Tigers')
}, 1000);
})
.then(quote => {
console.log(quote);
})
只有
resolve()
的第一个参数实际传递给然后是处理程序。您可能希望改为使用数组进行解析
resolve(['Bears', 'Lions', 'Tigers'])
另外,在调用setTimeout
之前,您有一个return-reject()
,因此您的setTimeout
代码是不可访问的,而且它永远不会发生。只有resolve()
的第一个参数实际传递给然后的处理程序。您可能希望改为使用数组进行解析
resolve(['Bears', 'Lions', 'Tigers'])
也有一个<代码>返回拒绝()/代码>在您的代码> SETTIMEOUT调用之前,所以您的<代码> SETTIMEOUT 代码是不可及的,它永远不会发生。
< P>您只能发送一个值,考虑发送为一个数组并在收件人上传播它。
new Promise((resolve, reject) => {
return reject(new Error('no bears'));
setTimeout(() => {
resolve(['Bears', 'Lions', 'Tigers'])
}, 1000);
})
.then(quote => {
console.log(...quote); // spreads to 3 items
})
只能发送一个值,考虑发送为数组并将其扩展到接收者
new Promise((resolve, reject) => {
return reject(new Error('no bears'));
setTimeout(() => {
resolve(['Bears', 'Lions', 'Tigers'])
}, 1000);
})
.then(quote => {
console.log(...quote); // spreads to 3 items
})
您正在return
ing立即,因此没有超时获得设置解析数组:resolve(['Bears'、'Lions'、'Tigers'))
您正在return
ing立即,因此没有超时获得设置解析数组:resolve(['Bears'、'Lions'、'Tigers'))
是的,我尝试了,但给出了一个数组而不是日志。工作,但我看到它的工作没有[]我100%肯定。这可能是版本差异吗?我不完全确定,但我非常确定resolve
只接受一个参数。这也说明了这一点。关于取回数组,如果它是数组,会有什么问题?数组/对象通常是在JSyea中以单个值传递多个项目的方式。我尝试过,但给出了一个数组而不是日志。工作,但我看到它的工作没有[]我100%肯定。这可能是版本差异吗?我不完全确定,但我非常确定resolve
只接受一个参数。这也说明了这一点。关于取回数组,如果它是数组,会有什么问题?数组/对象通常是在jsp中以单个值传递多个项目的方式如果使用排列运算符,则可以在不使用[]
的情况下打印。就是这样!感谢考虑者向上投票/如果答案能解决您的问题,请接受答案:)如果您使用spread运算符,您可以在不使用[]
的情况下打印它!谢谢考虑投票/如果答案能解决您的问题,请接受:)