Tôi đang cố gắng liên kết hai hàm không đồng bộ với nhau, vì hàm đầu tiên có tham số trả về có điều kiện khiến hàm thứ hai chạy hoặc thoát khỏi mô-đun. Tuy nhiên, tôi đã tìm thấy hành vi kỳ lạ mà tôi không thể tìm thấy trong thông số kỹ thuật.
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
Đây là một đoạn mã bị lỗi của tôi (bạn có thể xem toàn bộ phạm vi tại đây ), chỉ đơn giản là kiểm tra xem một người chơi đã ở trong sảnh hay chưa, nhưng điều đó không liên quan.
Tiếp theo chúng ta có chức năng không đồng bộ này.
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
Hàm này không cần chạy nếu exit === true
.
Tôi đã cố gắng làm
const inLobby = await isInLobby();
Điều này tôi hy vọng sẽ chờ đợi kết quả, vì vậy tôi có thể sử dụng inLobby
để chạy có điều kiện countPlayer
, tuy nhiên tôi đã nhận được lỗi gõ không có chi tiết cụ thể.
Tại sao bạn không thể await
một async
chức năng bên ngoài phạm vi của chức năng? Tôi biết đó là một lời hứa đường nên phải xâu chuỗi then
nó nhưng tại sao trong countPlayer
tôi có thể chờ đợi một lời hứa khác, còn bên ngoài thì tôi không thể await
isInLobby
?
await isInLobby()
vàinLobby
được sử dụng như thế nào không? Ngoài ra, ở đâu / như thế nào đượccountPlayer
gọi là?