js異步解決方法

在瀏覽器端,耗時很長的操做都應該異步執行,避免瀏覽器失去響應,最好的例子就是Ajax操做。在服務器端,"異步模式"甚至是惟一的模式,由於執行環境是單線程的,若是容許同步執行全部http請求,服務器性能會急劇降低,很快就會失去響應。小程序

最近在小程序開發中也遇到了這個問題,主要wx.openBluetoothAdapter這個函數,js認爲其太消耗時間,就先跳過運行,可是咱們須要在這個函數中得知藍牙到底有沒有打開,下面就開始介紹如何處理異步。瀏覽器

callback服務器

實例代碼以下:異步

openblue: function (callback) {
    var that = this;
    console.log("openblue運行")
    wx.openBluetoothAdapter({
      success: function(res) {
        console.log("藍牙打開成功", res);
        callback(true);
      },
      fail: function(res) {
        console.log("藍牙未打開");
        wx.showToast({
          title: '請先打開藍牙',
          image: '../../images/藍牙.svg',
          mask: true
        })
        callback(false);
      }
    });

經過callback會調的方式能夠使函數運行wx.openBluetoothAdapter函數返回true或者false以後再執行接下來的函數,若是咱們在代碼中並無使用callback,而是使用return直接返回結果的話,獲得的結果將會是None。svg

相關文章
相關標籤/搜索