Sobes.tech
Middle — Middle+

როგორ შეიძლება გამოიყენოს async/await სერიული მოთხოვნების შესასრულებლად, პროცესის დასრულება მესამე მოთხოვნის შემდეგ, მოლოდინის გარეშე მეოთხედის?

sobes.tech AI

პასუხი AI-სგან

Async/await გამოყენებით სერიული მოთხოვნების შესრულება და პროცესის გაჩერების შესაძლებლობა მესამე მოთხოვნის შემდეგ, შესაძლებელია გამოიყენოს მარტივი ციკლი შედეგის ან გამოთვლით კონტროლით. მაგალითად, Swift-ში:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("მოთხოვნა \(i) დასრულდა შედეგით: \(result)")
        if i == 3 {
            print("პროცესი დასრულებულია მესამე მოთხოვნის შემდეგ")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // ასინქრონული მოთხოვნის იმიტაცია
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 წამი
    return "პასუხი \(number)"
}

ამ მაგალითში მოთხოვნები შესრულდება სერიულად, რადგან ვიყენებთ await ციკლში. მესამე მოთხოვნის შემდეგ, ციკლი შეწყდება ბრძანებით break, და მეოთხე მოთხოვნა არ შესრულდება.

ამ გზით, async/await საშუალებას აძლევს დაწეროთ ასინქრონული კოდი, რომელიც გამოიყურება როგორც სინქრონი, და ადვილად აკონტროლოთ შესრულების ლოგიკა.