使用await作为参数

时间:2018-07-15 05:20:11

标签: javascript async-await

只是想知道这是否可行(我想不是因为我从未见过在任何地方做过),以及是否有人对为什么不这样做有很好的解释。

const expiry = new Date(await getTokenExpiry() * 1000)

或者我是否必须这样做:

const expiry = await getTokenExpiry()
const muhExpiry = new Date(expiry * 1000)

感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:3)

是的,可以这样做-毕竟,在需要使用参数之前,必须在参数的外部表达式之前对参数进行求值,该参数与await并存。例如:

const multiplyBy4 = num => num * 4;
const resolveWithOne = () => new Promise(res => setTimeout(res, 500, 1));

(async () => {
  console.log('start');
  const result = multiplyBy4(await resolveWithOne());
  console.log(result);
})();

也就是说,除非表达式非常简单,否则如果将每个await放在自己的行上,代码的可读性可能会更高。

相关问题