鍍金池/ 問(wèn)答/HTML/ Promise 異步問(wèn)題

Promise 異步問(wèn)題

axios 全局請(qǐng)求攔截器里需要請(qǐng)求一個(gè)方法拿到返回值 在return config
因?yàn)檎?qǐng)求方法時(shí)異步的 所以采用Promise

axios.interceptors.request.use(config => {
    return new Promise(resolve => {
        window.__nativeFn("js_getAllDeviceInfo", {
            // ios的響應(yīng)結(jié)果
            response: r => {
                config.data = Object.assign(config.data, r.data)
                // window.vue.$Tips.info(r.data, 2000)
                resolve(config)
            }
        })
    })

}, error => {
    return Promise.reject(error)
});

當(dāng)一個(gè)頁(yè)面只有一個(gè)請(qǐng)求的時(shí)候這個(gè)是ok的, 當(dāng)一個(gè)頁(yè)面有多個(gè)請(qǐng)求的時(shí)候 最后一個(gè)請(qǐng)求的config會(huì)覆蓋掉之前的所有請(qǐng)求的config 并且也只發(fā)送了一次請(qǐng)求 不知道為什么會(huì)這樣。 如果解決該怎么解決?或者采用什么方式可以達(dá)到我想要的結(jié)果 等ios響應(yīng)后 在return config

回答
編輯回答
妖妖

別光發(fā)promise的定義代碼,也要發(fā)你怎么調(diào)用的。。。

2018年1月27日 11:44
編輯回答
夏夕

感謝各位回答者, 是因?yàn)槲襙_nativeFn方法封裝的問(wèn)題 因?yàn)槊總€(gè)接口請(qǐng)求前都需要調(diào)用 js_getAllDeviceInfo這個(gè)ios方法。 我response 這個(gè)匿名函數(shù)是自動(dòng)生成掛載在window上的 所以第二個(gè)第三個(gè)等等api請(qǐng)求一直在重寫(xiě)這個(gè)方法

2017年8月18日 15:51
編輯回答
墨小白

每一次請(qǐng)求都去獲取一次設(shè)備信息嗎?為什么不緩存起來(lái)?

2017年6月11日 21:34