JavaScript 数组映射中的函数不返回承诺

Function inside JavaScript Array map not returning promises

正在尝试从函数处理数组 nodes 的所有结果,但未向 promises 添加任何内容。

const promises = nodes.map(localModelScan);

function localModelScan(node) {
    let text = node.textContent;
    model.then(function (res) {
        if(res.check(node.text) > 0.3) return node;
    }).catch((error) => {
        console.error('Error:', error);
    });
}

您需要在 localModelScan 函数的末尾添加 return model;,否则 promises 将只是一个包含 undefined.

的数组
const promises = nodes.map(localModelScan);

function localModelScan(node) {
    let text = node.textContent;
    return model.then(function (res) {
        if(res.check(node.text) > 0.3) return node;
    }).catch((error) => {
        console.error('Error:', error);
    });
}

或者,您可以将其写成箭头函数:

const localModelScan = (node) => model.then((res) => {
        if(res.check(node.text) > 0.3) return node;
    }).catch((error) => {
        console.error('Error:', error);
    });

const promises = nodes.map(localModelScan);