【React】JS异步执行工具 Promise

使用Promise 实现刷新页面、业务代码的先后执行

new Promise((resolve => {
    this.setState({
        key:value
    })
    resolve();
})).then(()=>{
    try {
        this.refs['panel'].handleSearch();
    } catch (error) {
        console.error(error.message)
    }
});

自定义封装(方便调用)

/**
 *
 * @param service
 * @param then
 */
requestService = (config) => {
    new Promise((resolve) => {
        resolve(config.request());
    }).then((response) => {
        config.then(response)
    });
}

自定义调用

this.requestService({
    request: () => {
        this.setLoading(true);
        let result = requestInterface()
        return result
    },
    then: (result) => {
        this.setLoading(false);
        this.handleResponse(result);
        this.refreshData();
    }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,285评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,232评论 4 61
  • 每个人都是一艘在黑暗的海上行驶的小船, 如果你很弱, 是虚无缥缈,还是沉没于大海; 当你遇到的一切难以接受或无法改...
    简小取阅读 115评论 3 3
  • 公司食堂里有两个大师傅,一个是二十多岁年轻的刘全,另一个是六十岁的老胡。 刘全虽然年轻,但在这个公司属于元老级的人...
    善下归海阅读 763评论 0 2