首页 > 解决方案 > JS从blob中获取字符串

问题描述

我有一个功能

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

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

标签: javascriptstringpromiseblob

解决方案


好吧,你必须做一些黑魔法才能让它发挥作用。但是,嘿,黑魔法有时很有趣。

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

只需传入blob_hidden_inputas 即可element parameter

因为它是一个 Promise,所以在返回 Promise 的那一刻,您无法获取 Promise 的值,除非Promise 动作是同步的,而 Blob 不是。

此函数将以一种看似立即的方式应用该值,但实际上它会稍微延迟。这就是 Promise 的工作方式,你无法解决它。


推荐阅读