angular - Typescript 在 Http get 之后执行 document.execCommand('copy')
我遇到了一个问题,即在执行 get 请求之后,无法直接执行 document.execCommand('copy')(get 请求被包装在返回 Observable 的服务中)。我认为这是因为 get 请求是异步调用,所以该事件不再被视为可信。
我以为我也许可以等待服务呼叫……
async getBearerToken(username: string) {
const token = await this._getTokenService.getToken('scopevar', username).first().toPromise();
this._clipboard.copy(token);
}
但是这没有用。
注意,_clipboard 服务只是创建一个文本区域,注入 DOM 并设置文本,然后调用 document.execCommand——当直接从按钮点击调用且没有其他异步调用时,它是可以工作的。我认为我需要确保该调用和前一个调用在同一个线程上。
我意识到一个解决方法是分两步进行,先获取文本,将其设置到一个文本区域,然后再让用户点击一次——不过我更希望能够正确地完成它。(这只是一个用于获取测试用户令牌进行测试的内部应用)
那么,我怎样才能在不使用讨厌的变通方法的情况下实现这一点呢?