我在forEach循环中调用我的异步函数,代码如下所示:
foo {
list.forEach(function( field ) {
populateValues( field );
});
// here my list is returned incomplete
return list;
}
populateValues = async function ( field ) {
if ( field.someProp === true ) {
fields.val = await somePromise();
}
}
somePromise = function() {
return new Promise( resolve => {
fetchMyAPIExample().then( function( value ) {
resolve( value );
}
}
}
populateValues() 等待我的 Promise 正确返回,但是 foo() 没有等待 populateValues 返回完整的列表就返回了列表,导致列表不完整。
list
的内容,所以仅仅纠正这个问题是不够的,你的列表还是原来的样子。我们还有一个对于未在此处声明的fields
的引用。 - Kaddathfield
是一个属性名称的字符串,而不是属性本身。但我想你在回答中已经纠正了。 - Kaddath