停止if异步函数中的语句立即返回未定义?

时间:2019-01-18 09:37:42

标签: javascript if-statement asynchronous async-await

我有以下异步代码。

const dlcOrNot = async (file) => {
  console.log('Unpacking dlc file...')
  if (file.indexOf('.dlc') > -1) {
    await decrypt.upload(file, (err, response) => {
      const links = response.success.links;
      writeFile('urls.txt', String(links).replace(/,/g, '\n'), 'utf-8', () => {
        return 'urls.txt';
      });
    });
  } else {
    return file;
  };
};

我的问题是if语句在运行decrypt.upload()之前立即返回未定义的值,如何使它等待内部函数返回其值?

1 个答案:

答案 0 :(得分:0)

您只能export default class BottomSlider extends Component<IProps> { public render() { // const { pathname } = this.props.location const { Modal } = this.props.store const { BuildingData } = this.props.store console.log("==============") console.log("test", this.props) return ( <div className={`bottom-slider ${ pathname !== "/worklist-dynamic" ? "bottom__slider-hide" : "bottom__slider-align" }`} > <div className={`bottom__slider ${ pathname === "/worklist-dynamic" ? "bottom__slider-align" : "" // todo add visibility }`} > <div className="building_name"> <p className="building_name-text">test</p> </div> </div> </div> ) } } 个诺言。

await不返回承诺。

用承诺代替它。

This question涵盖了将需要回调的函数转换为返回promise的函数。