在Angular中从一个Promise中提取值,你可以使用async/await来处理。下面是一个示例代码:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
{{ value }}
`,
})
export class AppComponent {
value: string;
async getValue() {
const promise = new Promise((resolve) => {
setTimeout(() => {
resolve('Hello, Promise!');
}, 2000);
});
this.value = await promise;
}
}
在这个示例中,我们创建了一个Promise对象并使用setTimeout模拟异步操作。当点击"Get Value"按钮时,我们调用了getValue方法。在这个方法中,我们使用了async关键字来声明该方法为一个异步函数。然后,我们使用await关键字来等待Promise对象的结果,并将结果赋值给value属性。
在模板中,我们通过插值表达式{{ value }}来显示提取的值。
当点击按钮时,将会等待2秒钟,然后在页面上显示"Hello, Promise!"。
请注意,async/await语法需要在TypeScript 2.1及以上版本中才能使用。如果你使用的是较旧的版本,你也可以使用Promise的then方法来提取值:
getValue() {
const promise = new Promise((resolve) => {
setTimeout(() => {
resolve('Hello, Promise!');
}, 2000);
});
promise.then((value) => {
this.value = value;
});
}
这个示例与前面的示例相同,只是使用了then方法来提取值并将其赋值给value属性。