Javascript закрытия и загрузки

Вы можете передать обратный вызов и вызвать обратный вызов внутри асинхронного вызова

примерно так:

class func getGenres(completionHandler: (genres: NSArray) -> ()) {
    ...
    let task = session.dataTaskWithURL(url) {
        data, response, error in
        ...
        resultsArray = results
        completionHandler(genres: resultsArray)
    }
    ...
    task.resume()
}

, а затем вызвать этот метод:

override func viewDidLoad() {
    Bookshop.getGenres {
        genres in
        println("View Controller: \(genres)")     
    }
}
0
задан devamat 18 February 2019 в 03:51
поделиться

1 ответ

Вместо использования встроенных обработчиков атрибутов (которые сложны в управлении и обычно считаются довольно плохой практикой), вместо этого присоедините обработчик, используя Javascipt, внутри onload:

window.onload = function() {
  const test = document.querySelector('.test');
  // handleCannon:
  test.addEventListener('click', () => {
    test.textContent = 'bananas';
    handleBullet.reset();
  });
  // ...

Обратите внимание, что назначение значение onload будет означать, что этот обработчик будет перезаписан, если что-либо еще назначит onload (аналогично, другой обработчик, уже находящийся в onload при выполнении этого скрипта, будет перезаписан) - вместо этого вы можете использовать addEventListener, разрешив сценарии для прослушивания события load в нескольких местах, что может быть полезно для больших или нескольких сценариев:

window.addEventListener('load', () => {
  const test = document.querySelector('.test');
  // handleCannon:
  test.addEventListener('click', () => {
    test.textContent = 'bananas';
    handleBullet.reset();
  });
  // ...
});
0
ответ дан CertainPerformance 18 February 2019 в 03:51
поделиться
Другие вопросы по тегам:

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