拥有这样的代码
如果用户是当前用户,我试图使该函数返回true,但问题是代码执行不等待并且甚至在执行此代码之前就完成了吗?
我应该使用异步并等待吗?
如何在这里让Typescript等待获取resultSet的值?
P.S:我是Typescript的新手
const resultSet= WorkItemFormService.getService().then(
function(ServiceWTest){
const b=ServiceWTest.getFieldValues([userField]).then(function(value)
{
var a=false;
if(currentUser==actualUser)
{
a=true;
}
else
{
}
return Promise.resolve(a);
});
return Promise.resolve(b);
});
var actiona=resultSet.toString();
答案 0 :(得分:1)
我认为您在此问题中没有足够的上下文,并且/或者在此问题完全形成之前有一些问题需要解决。例如。 actualUser
来自哪里,您打算如何在内部函数中使用变量value
?
更广泛地解决此问题,将其应用于此处的广义笔触,async / await将是一个很好的解决方案。我认为,如果我正确地阅读了意图,那么您正在寻找类似以下的内容:
async function myFunction() {
const ServiceWTest = await WorkItemFormService.getService();
const actualUser = await ServiceWTest.getFieldValues([userField]);
const isCurrentUser = currentUser === actualUser;
// Here you probably want to call a callback that handles what happens once you've found out the answer to "is this the current user?"
doSomethingWith(isCurrentUser);
}
在诺言中,类似
WorkItemFormService.getService().then(ServiceWTest => (
ServiceWTest.getFieldValues([userField]).then(actualUser => (
actualUser === currentUser
)
)).then(isActualUser => {
doSomethingWith(isActualUser)
}