在异步/等待时返回多个变量

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

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function testFunction() {
  return new Promise(function(resolve, reject) {
    resolve("test1", "test2");
  });
}

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

run();


解决方案

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

返回数组,您可以将属性赋值保留在幕后。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function testFunction() {
    return new Promise(function(resolve, reject) {
  	       resolve([ "test1", "test2"] );
           });
}

async function run() {

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

}

run();

相关文章