Angular,用settimeout($ q)嘲笑一个诺言

ajm*_*jma 2 javascript angularjs angular-promise

我正在尝试为服务设置测试工具,使前端大约需要1秒钟才能播放一些东西。

我正在使用aq,所以我可以在控制器中调用.then,所以我发疯了,现在可以通过使用set timeout来伪造它,但是我认为我的语法不正确。这是我尝试过的:

return $q(function(resolve, reject) {
                        setTimeout(function() {

                        }, 1000).then(resolve);
                    });
Run Code Online (Sandbox Code Playgroud)

我只希望它等待一秒钟然后解决。对此新手,将不胜感激任何意见,谢谢!

Ber*_*rgi 5

确实,您的语法不正确。该setTimeout函数不使用.then()方法返回promise- 而是接受回调。您想使用

return $q(function(resolve) {
    setTimeout(function() {
        resolve();
    }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用Angular,则应该选择立即返回承诺的$timeout服务