Có cách nào để đảm bảo vòng lặp for đã kết thúc trước khi chạy hàm tiếp theo?Đợi vòng lặp kết thúc
Tôi có trường hợp người dùng được hiển thị danh sách người dùng, họ có thể chọn số X của những người dùng này và khi họ nhấn 'Xong' cho mỗi người dùng đã được chọn Tôi gọi dịch vụ API REST để nhận một số thông tin khác về người dùng được chọn để thêm vào mảng 'người dùng'.
Nhưng những gì xảy ra là bất cứ điều gì tôi đặt sau khi vòng lặp for có vẻ chạy trước khi nó đã kết thúc và do đó có những người mất tích từ nó
Mẫu mã bên dưới:
function doCreateStory() {
var users = [];
// Add logged in user as creator
users.push({
"id" : user_id,
"creator" : true
});
// Add all checked users
for (var i = 0, len = items.length; i < len; i++) {
if (items[i].properties.accessoryType == Ti.UI.LIST_ACCESSORY_TYPE_CHECKMARK) {
api.UserSearch({
"method" : "facebook",
"id" : items[i].properties.id
}, function(success, res, code) {
if (success == 1) {
users.push({
"id" : res.message._id,
"creator" : false
});
} else {
// Its broke..
}
});
}
}
// WANT TO DO SOMETHING HERE with 'users' array once loop has finished
}
Điều này dường như làm việc, tôi đoán id phải làm 'yêu cầu ++' hoặc một cái gì đó như 'yêu cầu = 100' trong 'Đó là tất cả đã phá vỡ' để giải thích nếu có bất kỳ yêu cầu nào không thành công? – Tam2
Thực ra tôi chỉ có thể di chuyển 'yêu cầu -' vào câu lệnh thành công – Tam2
Có, bạn sẽ muốn đảm bảo rằng mỗi nhánh giảm yêu cầu (ví dụ của tôi có yêu cầu-- phía trên if/else để nó đếm yêu cầu. – jeremy