Сделайте функцию выполненной перед продолжением

Я знаю, что OP искал решение для CSS, но его легко достичь с помощью jQuery. В моем случае мне нужно было найти родительский тег <ul> для тега <span>, содержащегося в дочернем <li>. В jQuery есть селектор :has, поэтому можно определить родителя с помощью его дочерних элементов:

$("ul:has(#someId)")

выберет элемент ul, у которого есть дочерний элемент с id someId . Или, чтобы ответить на исходный вопрос, что-то вроде следующего должно сделать трюк (непроверенный):

$("li:has(.active)")
0
задан hi1231bye 28 March 2019 в 04:42
поделиться

2 ответа

Попробуйте это решение. это работает

func parseData(from json: [String: Any) -> Val {

        var a //some values I got from parsing that I NEED for B
        var anotherVariable

        let group = DispatchGroup()
        group.enter()
        B(a) { result in
            anotherVariable = result
            group.leave()
        }

        group.wait()
        var otherVar = anotherVariable[0]
        return Val(a, anotherVariable, otherVar) // this is a struct
        //returned
    }

    func B(_ a: a, completion: @escaping ([Res]) -> Void) {
        SomeotherFunc(a, completion: { resp in
            completion(res)
        })
    }
0
ответ дан Nilesh R Patel 28 March 2019 в 04:42
поделиться

Не делай этого.

Пожалуйста, научитесь понимать, как работает асинхронная обработка данных, и добавьте еще один обработчик завершения в parseData. И вы неправильно используете DispatchGroup в B. Как следует из названия, это полезно только для группы асинхронных вызовов, например, в цикле

func parseData(from json: [String: Any], completion: @escaping (Val) -> Void) {
    var a //some values I got from parsing that I NEED for B
    var anotherVariable
    B(a) { result in
        anotherVariable = result
        completion(Val(a, anotherVariable, anotherVariable[0]))
    }
}

func B(_ a: a, completion: @escaping ([Res]) -> Void) {
    var res = [Res]()

    SomeotherFunc(a) { resp in
        res = resp
        completion(res)
    })
}
0
ответ дан vadian 28 March 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: