在promises和function之间传递值

时间:2018-03-18 08:08:23

标签: javascript

当我运行代码时出现此错误:

无法找到变量:flagData

如何从promises实现返回(传递)数据(我在另一个函数中使用promises)

resultOTP = OTP.fetchData(uniqueId, mobileNumber)

    .then((data) => {

      data.map((data)=>{
        if(data.message == "-1"){

          var flagData = 0
        }
        else {
          var flagData = 1
        }
      })


    })


    alert(flagData)

1 个答案:

答案 0 :(得分:1)

首先,变量没有在正确的范围内定义,即使它没有用,因为你有一个异步调用,你在改变它的值,你也可以使用异步等待

async function fetchData() {
  const response = await OTP.fetchData(uniqueId, mobileNumber);
  let flagData = -1;
  if(response) {
     response.map((data)=>{
        if(data.message == "-1"){
          flagData = 0
        }
        else {
          flagData = 1
        }
      })
  }
  alert(flagData)
}