鍍金池/ 問答/HTML/ vue 傳不同的參數(shù) 得到不同的值該怎么做

vue 傳不同的參數(shù) 得到不同的值該怎么做

//api.commonItem 是我寫的一個請求
getCommonItem (value) {
        let variable = ''
        api.commonItem({value: value}).then(res => {
          variable = res.data.name
          console.log("第一次",variable)
        })
        console.log("第二次",variable)
        return variable
      },

clipboard.png

我調(diào)用了兩次getCommonItem方法 傳了兩次參數(shù) 我想得到不同的值 但是第二次就為空了 是不是邏輯不對 請大神幫我看看 是不是請求還沒完成 variable 已經(jīng)return 出去了

回答
編輯回答
笑忘初

你封裝了 commonItem 那應(yīng)該知道返回了一個 Promise,這是個異步操作,如果你想 variable 能被 getCommonItem 的調(diào)用方拿到,那要么改成經(jīng)典的 callback

getCommonItem(value, callback) {
    api.commonItem({value: value}).then(res => {
        let variable = res.data.name
        console.log("第一次",variable)
        callback(variable)
    })
}

getCommonItem(value, variable => {
    console.log('第二次', variable)
})

要么繼續(xù)沿用 Promise

getCommonItem(value) {
    return api.commonItem({value: value}).then(res => {
        let variable = res.data.name
        console.log("第一次",variable)
        return Promise.resolve(variable)
    })
}

getCommonItem(...)
    .then(variable => {
        console.log('第二次', variable)
    })
2017年3月20日 09:55