仅在非 thenable 异步函数完成后执行代码

Execute code only after a non-thenable, asynchronous function completes

我只想在 flexslider() 函数完成后才执行我的代码。问题是 flexslider() 没有 return 承诺或其他承诺。

所以我应用了这个令人讨厌的解决方法 setTimeout 我想摆脱它。如何重构它并仅在 flexslider 初始化后执行我的代码?

(function($) {
    $('.flexslider').flexslider({
        animation: "slide",
        controlNav: false
    });
    setTimeout(function() {
        var $navBar = $('.primary-nav');
        var navbarPosition = $navBar.offset().top;
        $(window).scroll(function() {
            var scrollPosition = $(this).scrollTop();

            if (scrollPosition >= navbarPosition) {
                $navBar.addClass('navbar-fixed');
            } else {
                $navBar.removeClass('navbar-fixed');
            }
        });
    }, 1000);
})(jQuery);   

如何使用start:

$('.flexslider').flexslider({
  animation: "slide",
  controlNav: false,
  start: function(){
    // do something....
  }
});

Documentation