收藏
回答

iOS-8 的 Promise 支持问题?

问题模块
客户端

我看了 3.08 的更新文档,里面提到了更为全面的 es6 接口支持,当时看到的表格,Promise 的 iOS8 下没有打叉的应该是支持了。

但是今天发现在 iOS 8 中的 Promise 依然为 null。

是我哪里设置有误么?


最后一次编辑于  2017-04-18  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

9 个回答

  • 林超
    林超
    2017-04-21

    无法执行并且不报错?


    是不是错误没有被你catch捕获。

    2017-04-21
    赞同
    回复
  • 林超
    林超
    2017-04-19

    这个版本应该是这次 promise 的


    直接打印出来是null么?

    2017-04-19
    赞同
    回复
  • 林超
    林超
    2017-04-18

    在手机上打开调试


    看下SYSTEM页卡中的WeChatLib的版本是什么

    2017-04-18
    赞同
    回复
  • Plane
    Plane
    2017-10-17

    都这么久了,还是没处理啊,唉

    2017-10-17
    赞同
    回复
  • 村长
    村长
    2017-08-07

    无法执行 并且不报错,原来这么久就发现了这个问题,官方的文档并没有修改··················

    2017-08-07
    赞同
    回复
  • 清明夏至
    清明夏至
    2017-05-20

    app.js 代码

    App({
    /**
      * 程序异常
      * @param err
      */
     onError(err) {
    console.error(err);

     },

    });


    pages/index/index.js 代码

    Page({
    onShow(){

    this.init().then(() => {
    this.setData({app: 'ok'});
       })

    },
     init(){
    return new Promise((resolve, reject) => {
    setTimeout(() => {
    this.setData({ok: resolve.toString()})
    resolve();
         }, 3000)
    });
     }
    })


    pages/index/index.wxml

    <view>{{ok}}</view>
    <view>{{app}}</view>


    模拟器结果

    123

    ok


    手机iPhone6 plus ios8.3(12F70)  微信版本6.5.8

    结果

    123


    ES6 -> ES5 为Babel自己手动转换

    手机上小程序开调试模式 微信闪退


    Babel后代码如下

    "use strict";

    /**
    * 初始化小程序APP
    */
    App({
    /**
      * 程序异常
      * @param err
      */
     onError: function onError(err) {
    console.error(err);
     }
    });


    'use strict';

    Page({
    onShow: function onShow() {
    var _this = this;

       this.init().then(function () {
    _this.setData({ app: 'ok' });
       });
     },
     init: function init() {
    var _this2 = this;

       return new Promise(function (resolve, reject) {
    setTimeout(function () {
    _this2.setData({ ok: 123 });
           resolve();
         }, 3000);
       });
     }
    });


    2017-05-20
    赞同
    回复
  • 傅斌
    傅斌
    2017-04-20

    是的,是 null。在不特殊处理的情况下。相同而 promise 代码,iOS 8下无法执行,并且有而且也不报错。

    2017-04-20
    赞同
    回复
  • 傅斌
    傅斌
    2017-04-19

    补充一下,最开始我关闭了 微信开发者工具 的工具栏 es6转es5,使用的是 babel 的转写,没有使用 polyfill。在 iOS 8 下 Promise 为 null。后来我开启了 es6转es5,效果还是一样。

    2017-04-19
    赞同
    回复
  • 傅斌
    傅斌
    2017-04-19

    iOS 8.4.1 Wechat 6.5.7

    WeChatLib: 1.1.1 (2017.4.12 16.55.09)

    2017-04-19
    赞同
    回复