使用异步/等待并在React.js中返回状态

时间:2018-07-24 07:18:57

标签: javascript reactjs async-await react-redux axios

我正尝试在我的ABC函数内部使用API​​调用另一个函数,以检查remaing是否可用。

如果还有可用的retun true,其他return false。下面是我的代码。但是我的控制台日志显示undefined。我想以true或{{1}的形式获取它}放在我的ABC函数中。

false

1 个答案:

答案 0 :(得分:0)

要使在ABC中创建的函数在其逻辑流代码中使用异步操作的结果,它必须是async函数。您在async中创建的Balance函数没有任何用处,await true处理程序中的await falsethen也不起作用。

自然地,如果在ABC中创建的函数是async函数,则调用它的代码必须是async函数或通过promise语法使用。

export function ABC(data,callback) { 
  return async function(dispatch, getState) {  
  // ----^^^^^
    var res = dispatch(await Balance(data));
  // ------------------^^^^^

    console.log("Balance status",res)

    //rest of code
    if(res){
    }

    ................
 }
}

export function Balance(data) {
  return function (dispatch, getState) {
    const url = `api/.../balances`;
     axios.post(`${url}`,
      data
    ).then(function(response) {
      return response.data.remaing > 0; // ***
    });
  };
}

(真的是remaing,不是[say] remaining吗?)