web-dev-qa-db-ja.com

async / awaitで複数の変数を返します

配列やJavaScriptオブジェクトを返さずに2番目のresolve値(test2)を取得する方法があるかどうか疑問に思っていました。

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

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

run();
12
Mark Nijboer

渡すことができるアイテムは1つだけです。しかし、ES6Array 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();
21
Suren Srapyan