I`m new in Cocos Creator engine, and now completely stuck with tweening.
I have next tween func in my code:
    private magnetTween(pos: Vec3): Tween<Readonly<Vec3>>
    {
        const offset = Math.abs(this.node.worldPosition.x - pos.x);
        const duration = offset / this.gameConfig.CameraConfig.MagnetSpeed;
        console.log('tween duration ' + duration)
        return tween(this.node.worldPosition).to(duration, pos,
            {
                onUpdate: (target: Vec3) => 
                {
                    this.node.setWorldPosition(target);
                }
            });
    }
And also the next Promise that I really need to await in other classes
    public async magnetTo(obj: Node): Promise<void>
    {
        console.log('magnet func start');
        const pos = obj.getWorldPosition();
        const prm = new Promise<void>((resolve, reject) => {
            this.magnetTween(pos)
             .call(() => resolve())
             .start();
        });
        await prm;
    }
But it doesnt work.
After some tests I investigated that:
- Tween works fine, if it was called out of async func. If I call it like this:
 
    protected start(): void 
    {
        const pos = new Vec3(10000, 0, 0);
        const promise = new Promise<void>((resolve, reject) => { this.magnetTween(pos)
             .call(() => resolve())
             .start();});
        promise.then(value => console.log('completed'))
    }
I get my completed log after node movement.
- Promise in my async func also works fine. If I use the syntax below, I also get my completed log after timeout
 
    public async magnetTo(obj: Node): Promise<void>
    {
        console.log('magnet func start');
        this.delay = 1000;
        const prn = new Promise<number>((resolve, reject) => 
        {
           setTimeout(resolve, this.delay);
        });
        await prn;
        console.log('completed')
    }
There is a very small amount of info about Cocos in web, so I really need help.
                        
Okay, there was a problem in another class, where I called Tween.Stop() func at the same moment. This func stops ALL of active tweens on scene, so my tween obviosly stopped after start. There is no issue with Promises!