如何用两个值来解决承诺?

时间:2018-08-31 13:54:29

标签: javascript node.js asynchronous promise

考虑以下代码:

new Promise(function (res, rej) {
    res('a','b')
}).then(function (a, b) {
    console.log(a,b)
})

它输出

a undefined

我该如何解析从Promise中返回两个值?

3 个答案:

答案 0 :(得分:5)

您不能,一个承诺只能以一个值来实现或拒绝。

然而,将两个值放入结构(例如数组)中并不容易:

new Promise(function(resolve) {
    resolve(['a','b'])
}).then(function([a, b]) { // array destructuring
    console.log(a, b)
})

答案 1 :(得分:5)

以数组形式返回它们。

new Promise((res, rej) => {
  res(["a", "b"]);
}).then(([a, b]) => {
  console.log(a, b);
});

答案 2 :(得分:0)

new Promise(function (res, rej) {
    res(['a','b'])
}).then(function (resContent) {
    console.log(...resContent)
})

它输出

a b