Promise支持

quick中,大部分API都支持Promise

注,有少部分API不支持Promise

不支持Promise的API

有少部分API因为涉及到多次回调(比如右上角按钮),所以不建议使用Promise

如果强行要使用,这些API调用完毕后马上就会进入then

以下是不支持Promise的长期回调API

JSAPI 说明
navigator.hookSysBack 拦截系统返回按钮
navigator.hookBackBtn 拦截左侧导航栏返回按钮
navigator.setRightBtn 设置并监听右侧按钮
navigator.setLeftBtn 设置并监听左侧按钮
navigator.setRightMenu 设置并监听右侧下拉菜单

另外,一些全局调用,由于性质不一样,也不支持Promise,如

  • quick.configquick.readyquick.error

支持Promise的API调用示例

注,除了不支持列表中的API,其它都支持Promise用法

基本用法

quick.ui.alert({
    title: '提示',
    message: 'sd#ddd测试',
    success: function(result) {
        litemplate.showTips(JSON.stringify(result));
    },
    error: function(error) {
        litemplate.showTips('失败:' + JSON.stringify(error));
    }
});

Promise用法

quick.ui.alert({
    message: "hello",
}).then(function(result) {
    console.log('点击alert成功,进入then');
}).catch(function(error) {
    console.error('失败:' + JSON.stringify(error));
});

自定义API调用也支持Promise

除了标准API外,调用自定义APIquick.callApi也支持Promise

使用示例

// 实际中请不要这样调用标准API,这里仅作为示例
// 因为标准API除了调用外还有可能有其它的兼容处理,直接callApi无法达到那个目的
quick.callApi({
    name: "pickDate",
    mudule: 'ui',
    data: {
        datetime: '2017-07-25'
    }
}).then(function(result) {
    console.log('成功选择时间:' + JSON.stringify(result) + ',进入then');
}).catch(function(error) {
    console.error('失败:' + JSON.stringify(error));
});
  • callApi也一样支持基本用法

  • 另外,当参数isLongCb = 1时,和最前面的长期回调一样,这时候callApi也同样不支持Promise

Copyright © dailc 2017 all right reserved,powered by Gitbook文件修订时间: 2017-12-21 16:26:41

results matching ""

    No results matching ""