我想使用Promise的值作为函数的默认参数,如下所示:
_drawElement(selector, html = this._htmlFrom(selector)) {
console.log(html);
}
_htmlFrom(templateName) {
var templatePath = `${this._templates}/${templateName}.html`;
return fetch(templatePath)
.then((response) => response.ok ? response.text() : null)
}
但我希望html是一个字符串,因为我可以用htmlFrom函数以外的其他方式传递它。在这里,我有一个承诺,我不知道如何检索字符串值(或null)。
好吧,所以按照Soverevisionerformance的建议,我这样做了:
async _drawElement(selector, html = this._htmlFrom(selector)) {
var tags = document.querySelectorAll(selector);
if (tags.length == 1) {
console.log(html);
var isPromise = typeof html.then == 'function';
if (isPromise) {
html = await html;
}
...
}
但是idk为什么,_htmlFrom函数被调用,即使我用html的值调用函数。(为什么html是一个承诺,即使我给出一个字符串作为参数)
慕丝7291255
相关分类