Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决括号之间有多个值的JS承诺?_Javascript_Reactjs_Promise - Fatal编程技术网

Javascript 如何解决括号之间有多个值的JS承诺?

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

在浏览器的控制台中,我期待3个连续的结果,它们是:狮子老虎。按这个顺序。我得到的只是熊

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运算符,您可以在不使用
[]
的情况下打印它!谢谢考虑投票/如果答案能解决您的问题,请接受:)