Consider adding `blob.dataUrl()` method, or some other analogue to `readAsDataURL`

Đang mở
#179 10 bình luận 1 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
30/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
javascript
Lĩnh vực
api, web-dev

Hướng nghiên cứu

Issue không xác định tệp nào trong repository hoặc test nào. Hãy bắt đầu bằng việc xem xét các phương thức arrayBuffer() và text() hiện có của Blob cùng với các đề xuất binary-encoding và ArrayBuffer base64 được liên kết, sau đó xác định xem đã có định hướng được xác định cho một API data URL dựa trên promise hay chưa. Điều kiện hoàn thành là có một thiết kế API đã được thống nhất, chứ không chỉ là một chỉnh sửa cục bộ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

feature request TPAC2024

Obviously data URLs and base64 in general should be avoided where possible, but unfortunately developers are often interacting with systems/libraries/APIs outside their control, and, practically, readAsDataURL is used a lot.

In fact, readAsDataURL is used about as much as readAsText and readAsArrayBuffer combined:

The blob.arrayBuffer() and blob.text() methods are delightful to use compared to previous methods, but for data URLs / base64 we're stuck with:

let file = ...;
let dataUrl = await new Promise((resolve, reject) => {
  const reader = new FileReader();
  reader.readAsDataURL(file);
  reader.onload = () => resolve(reader.result);
  reader.onerror = (e) => reject(e);
});

which is the opposite of delightful. This is one of those cases where I'm "embarrassed" by how convoluted a simple task is in JS when helping someone who is new to JS.

There are a couple of proposals that are related to this issue:

That said, I really like promise-based blob.methodName() approach, and I'm hoping that we'll eventually get something like that for data URLs.

Ngôn ngữ chính
HTML
Star
118
Fork
52
Merge trung bình
9 ngày 16 giờ
Pull request đã merge (30 ngày)
1

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của w3c/FileAPI

Tất cả issue của w3c/FileAPI

Issue tương tự

Thêm issue về Backend & API Design

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.