在浏览器的控制台中,我希望获得3个连续结果,这些结果是:熊,狮子,老虎。按此顺序。我得到的只是熊
new Promise((resolve, reject) => {
return reject(new Error('no bears'));
setTimeout(() => {
resolve('Bears', 'Lions', 'Tigers')
}, 1000);
})
.then(quote => {
console.log(quote);
})
答案 0 :(得分:2)
实际上仅将resolve()
的第一个参数传递给then
处理程序。您可能想用数组代替
resolve(['Bears', 'Lions', 'Tigers'])
此外,在您进行return reject()
呼叫之前,您有一个setTimeout
,因此您的setTimeout
代码无法访问,并且永远不会发生。
答案 1 :(得分:0)
您只能发送一个值,请考虑将其作为数组发送并在接收者处展开
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
})