Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS Promise回调:获取命名参数而不是数组_Javascript_Callback_Es6 Promise - Fatal编程技术网

Javascript JS Promise回调:获取命名参数而不是数组

Javascript JS Promise回调:获取命名参数而不是数组,javascript,callback,es6-promise,Javascript,Callback,Es6 Promise,我有两个异步调用,我想(某种程度上)将调用1的响应与对象中调用2的响应合并 下面的代码可以做到这一点。我的问题是:有没有办法让Promise.all中的回调参数更具可读性?我真的不喜欢在这种情况下使用数组 function getOptions() { let programRequest = someAsynFunc(...); let overviewTypeRequest = someOtherAsynFunc(...); return Promis

我有两个异步调用,我想(某种程度上)将调用1的响应与对象中调用2的响应合并

下面的代码可以做到这一点。我的问题是:有没有办法让
Promise.all
中的回调参数更具可读性?我真的不喜欢在这种情况下使用数组

function getOptions() {

      let programRequest = someAsynFunc(...);
      let overviewTypeRequest = someOtherAsynFunc(...);

      return Promise.all([programRequest, overviewTypeRequest]).then(values => {
          return {
              programs: values[0],
              overviewTypes: values[1]
          }
      });

  }

是:使用ES6解构:

Promise.all([...]).then(([programs, overviewTypes] => ({programs, overviewTypes}));
//                       ^ destructuring               ^ short object literal syntax

是:使用ES6解构:

Promise.all([...]).then(([programs, overviewTypes] => ({programs, overviewTypes}));
//                       ^ destructuring               ^ short object literal syntax

请看一看阵列分解。您可以这样做:

return Promise.all([programRequest, overviewTypeRequest])
  .then(([programs, overviewTypes]) => {
    return {
      programs,
      overviewTypes,
    }
  });
由于变量与对象属性的名称相同,因此还可以利用对象速记符号

供参考:


看一看数组的分解。您可以这样做:

return Promise.all([programRequest, overviewTypeRequest])
  .then(([programs, overviewTypes]) => {
    return {
      programs,
      overviewTypes,
    }
  });
由于变量与对象属性的名称相同,因此还可以利用对象速记符号

供参考:


上帝赞美ES6!上帝赞美ES6!可能的重复可能的重复