cuốn sách gpt4 ai đã làm

Async/await hoạt động như thế nào với lệnh gọi lại trong các hàm async?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 21:12:44 26 4
mua khóa gpt4 Nike

async setMyPhotos() {
const newPhotos = đang chờ Promise.all(newPhotoPromises);

someOtherPromise(); // sẽ đợi newPhotoPromise

syncAvatar(newPhotos[0], function(res, err) { // điều này có chờ newPhotoPromises không?
if (!err) console.log("avatar sync'd");
});

return newPhotos; // return chỉ cần chờ newPhotoPromises
}

tôi nhận thấy đồng bộ hóaAvatar Có vẻ hiệu quả, nhưng tôi không chắc liệu mình có may mắn hay không. Nếu vậy, làm thế nào để tôi đảm bảo đồng bộ hóaAvatar chỉ trong ảnh mớiLời hứa Chạy sau khi hoàn thành?

Để làm rõ,đồng bộ hóaAvatar cần phải ở trong ảnh mớiLời hứa xảy ra sau khi hoàn thành, nhưng setẢnh của tôi Chỉ cần quay lại newPhotoPromise< kết quả,而 đồng bộ hóaAvatar Có thể xảy ra trong nền.

câu trả lời hay nhất

Bạn đã nói ở trên"async 是一个Hứa thứ gì đó". Bạn nói đúng. Đúng vậy. Về cơ bản, nó là cú pháp cho những lời hứa, giúp chúng dễ thực hiện hơn trong một số tình huống nhất định.

Trong trường hợp này, hàm thực sự có thể được viết lại như sau:

setMyPhotos() {
trả về Promise.all(newPhotoPromises)
.then(newPhotos => {
someOtherPromise();

syncAvatar(newPhotos[0], function(res, err) {
if (!err) console.log("avatar sync'd");
});

trả lại Ảnh mới;
});
}

await Về cơ bản yêu cầu công cụ Javascript đợi trước khi thực hiện phần còn lại của chức năng Hứa được phân tích cú pháp. mọi thứ Tất cả đang chờ đợi lời hứa được giải quyết: chức năng về cơ bản đã bị đình chỉ.

async chức năng đảo ngượcluôn luônTrả lại mộtHứa, giống như đoạn mã tương đương ở trên.

Giới thiệu về javascript - Async/await hoạt động như thế nào với lệnh gọi lại trong hàm async? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/41899862/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress