在Angular中,当你使用Promise时,你可能会遇到无法将来自Promise的值赋给外部变量的问题。这是因为Promise是一个异步操作,它不会立即返回结果。为了解决这个问题,你可以使用以下方法之一:
async
关键字,并使用await
关键字等待Promise的解决。这将使函数在Promise解决后继续执行。以下是一个示例:async getData() {
const result = await this.getDataFromPromise();
this.externalVariable = result;
}
getDataFromPromise() {
return new Promise(resolve => {
// 异步操作
setTimeout(() => {
resolve('数据');
}, 2000);
});
}
then()
方法来处理异步操作的结果,并将结果赋给外部变量。以下是一个示例:getData() {
this.getDataFromPromise().then(result => {
this.externalVariable = result;
});
}
getDataFromPromise() {
return new Promise(resolve => {
// 异步操作
setTimeout(() => {
resolve('数据');
}, 2000);
});
}
无论你选择哪种方法,都要记住,由于Promise是异步操作,外部变量可能不会立即被赋值。你需要在处理Promise的结果之前,确保外部变量的值是有效的。