JS 从 blob 中获取字符串

JS get string from blob

我有一个功能

async function create_blob(image) {
    const blob = new Blob([image])
    return await blob.text()
}

我希望它成为 return 一个字符串。当我尝试使用此数据时,blob_hidden_input.value = create_blob(file_object) blob_hidden_value.value 是“[Promise object]”。那么如何在不使用黑魔法的情况下将 promise 转换为字符串呢?

好吧,你有点需要施展魔法才能让它发挥作用。但是,嘿,有时候黑魔法很有趣。

function apply_blob(element, image) {
   (new Blob([image]).text().then(value => element.value = value);
}

只需将 blob_hidden_input 作为 element parameter 传入即可。

因为它是一个 promise,所以你无法在返回 promise 的那一刻获得 promise 的值除非 promised 的动作是同步的,即 blob不是。

此函数将以一种看似立即但实际上略有延迟的方式应用值。这就是 promises 的工作方式,遗憾的是你无法绕过它。