在瀏覽器端,耗時很長的操做都應該異步執行,避免瀏覽器失去響應,最好的例子就是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