【发布时间】:2018-10-31 18:17:01
【问题描述】:
在类方法中,我通过异步函数this.retrieveData() 检索了一些数据。此方法返回我打算将其传递给另一个名为 renderTemplate() 的函数的数据。
async getTemplateHtml() {
const data = await this.retrieveData()
const html = renderTemplate(`some html template`, {stuff: data}
return html
}
然而,问题在于this.retrieveData() 实际上以Promise<string>[] 的形式返回了一个Promise 数组,而renderTemplate() 的签名是renderTemplate(string, {stuff: string[]}
我不能将 this.retrieveData() 返回的 data 直接传递给 renderTemplate() 的第二个参数,因为 data 中的元素仍然包装在 Promise 中。我也无法更改 renderTemplate() 函数的第二个参数,因为它来自 npm 库。
我怎样才能以某种方式解析 data 中的 Promises 中包装的值,以便我可以将其传递给 renderTemplate() 作为其从 Promise 中解包的实际值?
【问题讨论】:
-
const data = await Promise.all(this.retrieveData())是否符合您的意思?
标签: javascript typescript ecmascript-6 promise async-await