我有一个项目数组,我对数组中的每个项目进行API调用。我正在使用反应 用于调试(https://github.com/jhen0409/react-native-debugger)的本机调试器,问题是当我在函数中放置debugger语句时 在我进行API调用(即callAPI函数)的地方,调试器不会在那里停止,但是我得到了结果 如预期般,在API调用之后。
但是当我在yield调用([])中删除'[]'符号时;调试器停止在 callAPI函数。以下是我所面对的语法。
const callAPI = async ( client: ServiceRootClient, move: moveReq): Promise<any> => {
debugger;
const results = await client
.forOne(singletons => singletons.find(singleton =>
singleton.$Name === "Item"))
.forOperation(ops => ops.find(op => op.$Name === "Move"))
.withParameters((params, parameterSet) => {
params.map(param => {
if (param.$Name === "Data") {
parameterSet.add(param, movement);
}
});
})
.execute();
return results;
};
export function* applyItemMovements(action: itemManagement.Action) {
try {
const result = yield all([
ItemMoveRequests.map(ItemMoveRequest=>
callAPI, action.metadata.client, moveReq
)
]);
} catch(error) {
//print error
}
}
我在内部使用'[]'yield all来对所有数组项进行API调用,因此如果一个API调用 失败,不会停止调用API的数组中的其他项。
我不确定这是否 是进行API调用的方法,即使数组中的一项失败或我应该对收益进行任何修改,其余项目也可以调用API。如何使调试器语句停止 在callAPI函数中。