关于await的用法

请问各位大佬在如图的程序中,我使用await等待setState完成,setState是一个递归函数,但是最终都会进入到Character_State_Wait这个if语句中,我也用console.log打印出来确实执行到了这里,但是也仅仅到这里了,上面的调用setState后面的语句没有执行是什么问题 :sob:image

你管这个叫递归?
简单点讲,问下你执行的那个resolve是你第一次执行的那个resolve吗?

有promise时,建议递归分两个函数
一个示例

    setState(a: any) {
        return new Promise((resolve, reject) => {
            this._setState(a, (err) => {
                if (err) {
                     reject(err);
                     return;
                }
                resolve(true);
            });
        });
    }

    _setState(a: any, callback: Function) {
        let state =  doSomething(a);
        if (state == '合理') {
            callback();
        } else if (state == '不合理') {
            callback(err);
        } else {
            this._setState(a, callback);
        }
    }
1赞

定义异步函数:
syncFunc(): Promise {
return new Promise((resolve) => {
resolve(xxx);

};
调用异步函数:
(async () => {
……
let xxx = await this.syncFunc();
……
})();

1赞

谢谢,按你的写法写解决了。原来的代码应该是resolve没有传回来 :heartpulse: