在async / await上返回多个变量

时间:2017-09-07 07:18:26

标签: javascript asynchronous async-await es6-promise

我想知道是否有办法获得第二个resolve值(test2)而不返回数组或JavaScript对象。



function testFunction() {
  return new Promise(function(resolve, reject) {
    resolve("test1", "test2");
  });
}

async function run() {
  var response = await testFunction();
  console.log(response); // test1
}

run();




1 个答案:

答案 0 :(得分:20)

您只能传递一个项目。但是从ES6开始,有一个名为 Array Destructuring的好功能。

返回一个数组,您可以将属性分配保留在引擎盖下。



function testFunction() {
    return new Promise(function(resolve, reject) {
  	       resolve([ "test1", "test2"] );
           });
}

async function run() {

  const [firstRes, secondRes] = await testFunction();
  
  console.log(firstRes, secondRes);

}

run();