在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是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。

js异步解决方法的更多相关文章

  1. Jquery方法load之后导致js失效解决方法

    Jquery方法load之后导致js失效解决方法 >>>>>>>>>>>>>>>>>>> ...

  2. 1.Float精度在JS的解决方法

    最近做了一个有关折扣价的计算的功能,所有的运算都是在前台通过js来做,做完之后经过手工核算发现了一个问题,当时做的一个例子是10*0.94,按照我们正常的思维,这个结果应该是9.4,但是在js中的计算 ...

  3. JS冲突解决方法

    Prototype   jquery 冲突解决: 在页面中同时存在jquery 和 prototype ,当用到 $ 的时候,难免产生冲突,所以一定要区分开来: <script type=&qu ...

  4. Float精度 在JS的解决方法

    最近在做一个工资核算的系统,所有的运算全部在前台进行,因此用了的是JS来做. 做完以后,经手工核算,发现一个奇怪的问题.就是JS算出来的结果跟用计算器算出来的结果有差距. 想了很久,也没有想出问题出在 ...

  5. 页面嵌套时js失效解决方法

    事件:iframe或easyui的dialog嵌套页面时,被嵌套的页面可能js因位置失效; 解决: //动态加载js(根据父级html位置计算) jQuery.getScript("scri ...

  6. js乱码解决方法

    在开发中引用了Bootstrap多选插件,将其中显示的英文改为中文后,页面出现乱码. 对于大多数的Web页面我们一般使用俩种编码:UTF-8和GB2312,所以我们只要统一页面和JS的编码就可以避免乱 ...

  7. node.js报错throw err; // Rethrow non-MySQL errors e:\serverTest\node_modules\mysql\lib\protocol\Parser.js:79 解决方法

    今天在用node+angular做后台时,需要使用session保存登陆状态的时候,遇到了此问题,问题直译为非mysql问题,我也在后台取到的登陆用户名和密码,确实不是数据库问题.最后发现在使用ses ...

  8. npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法

    我在安装iView的时候就突然出现这个不正常工作,之后无论用npm进行任何操作,都会出现如下错误 真的是让人很着急啊,看了看环境配置,没问题,然后根据路径找错误,也不知道是哪里出了坑,上百度查,最多建 ...

  9. 一个例子读懂 JS 异步编程: Callback / Promise / Generator / Async

    JS异步编程实践理解 回顾JS异步编程方法的发展,主要有以下几种方式: Callback Promise Generator Async 需求 显示购物车商品列表的页面,用户可以勾选想要删除商品(单选 ...

随机推荐

  1. hadoop之hive基本操作

    -- 清空表中的数据,保留表结构 truncate table tmp_userid; '); -- 搜索库或表支持正则表达式 show tables 'sa*'; show tables in ba ...

  2. 前后端开发(2):浏览器与PHP程序的交互

    上一节介绍怎么在mac电脑上启用PHP程序,并且演示了一个简单的例子,这个例子运行时,涉及了浏览器.apache以及PHP程序的交互,这三者的关系大概是这样的: 一般来说,浏览器(或者类似功能的程序) ...

  3. Swift的访问控制讲解

    Swift中访问修饰符总共有5种,分别为fileprivate,private,internal,public和open,其中,fileprivate以及open是Swift 3新添加的.因为过去的S ...

  4. Scala 学习之路(八)—— 类和对象

    一.初识类和对象 Scala的类与Java的类具有非常多的相似性,示例如下: // 1. 在scala中,类不需要用public声明,所有的类都具有公共的可见性 class Person { // 2 ...

  5. 小白开学Asp.Net Core 《四》

    小白开学Asp.Net Core<三>                               —— 使用AspectCore-Framework 一.AspectCore-Frame ...

  6. 【HDU - 2181】哈密顿绕行世界问题(dfs+回溯)

    -->哈密顿绕行世界问题 Descriptions: 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市.  Input 前2 ...

  7. SQL Server温故系列(5):SQL 查询之分组查询 GROUP BY

    1.GROUP BY 与聚合函数 2.GROUP BY 与 HAVING 3.GROUP BY 扩展分组 3.1.GROUP BY ROLLUP 3.2.GROUP BY CUBE 3.3.GROUP ...

  8. Codeforces Gym101246H:``North-East''(LIS+思维)

    http://codeforces.com/gym/101246/problem/H 题意:在二维平面上有n个点,从最左下角的点出发,每次走只能走在当前的点的右上角的点(xj > xi, yj ...

  9. Spring Boot2(十二):手摸手教你搭建Shiro安全框架

    一.前言 SpringBoot+Shiro+Mybatis完成的. 之前看了一位小伙伴的Shiro教程,跟着做了,遇到蛮多坑的(´இ皿இ`) 修改整理了一下,成功跑起来了.可以通过postman进行测 ...

  10. Java 代码界 3% 的王者?看我是如何解错这 5 道题的

    前些日子,阿里妹(妹子出题也这么难)发表了一篇文章<悬赏征集!5 道题征集代码界前 3% 的超级王者>——看到这个标题,我内心非常非常激动,因为终于可以证明自己技术很牛逼了. 但遗憾的是, ...