我正在使用 xpath 遍历 xml 文件。我想知道是否有一种简单的方法来获取文件中每个节点的路径。我能想到的一种方法是收集数组中的所有节点。然后将其传递到一个函数,该函数将每个节点作为参数,并不断寻找父节点,直到到达文档根。所以,
function getPathForNode(eachXmlNode, path) {
if ( eachXmlNode == rootNode ) {
return path;
} else {
getPathForNode(eachXmlNode->parent, path+path_of_parent);
}
}
Run Code Online (Sandbox Code Playgroud)
请告诉我是否还有其他更好的方法或者递归函数是否正确?
以下代码抛出错误:
syncData().then((x) => yield put(loginUserSuccess(responseData)));
Run Code Online (Sandbox Code Playgroud)
错误:关键字“yield”已被保留。
同步数据处理获取数据的异步操作。我想使用yield put(由sagas.js提供)在执行同步数据后触发登录用户成功的操作。
syncData函数的核心如下:
export default async function syncData(dataType) {
await Promise.all([syncData1(), syncData2()]);
}
Run Code Online (Sandbox Code Playgroud) 我有一个使用自定义钩子useTimer的功能性react组件。该组件从API(通过redux store)接收数据。
function RenderRespond(order) {
if(order === null) return;
const {
buyerName,
offerDuration,
} = order;
const {
seconds,
minutes,
} = useTimer(offerDuration);
return(
<div>
{BuyerName}
{minutes}:{seconds}
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我只想在order不为null的情况下渲染此组件。代码抛出错误,即无法有条件地渲染钩子,我该如何实现?
在下面的代码中,val变量值由于异步行为而不断变化并生成意外输出,即在第一个循环的连接查询完成之前,var变量根据第二个循环生成错误输出.在循环中处理查询的最佳方法是什么避免异步性质引起的特性.
var output = [];
for ( var j = 0; j < someArr.length ; j++ ) {
val = someArr[j];//some manipulation of someArr[j]
connection.query( "select id from someTable where someCol = ?",val, function(err, rows, fields) {
if ( err ) {
console.log( err );
} else {
output.push( rows[0].someVal );//push query output to this variable
}
});
}
Run Code Online (Sandbox Code Playgroud)
console.log(output); //应包含所有查询的输出.