Promise 在解决时返回整个对象而不是 undefined

时间:2021-05-14 02:31:36

标签: javascript node.js async-await promise

我有下面的代码,其中我链接了一些承诺。我遇到的问题是,在这一行 let message = mRes.Messages.find(m => m.MessageId===id); 上,我正在从数组中查找某个对象,如果找不到,则 find 函数将返回 undefined。当我在 findMessage 函数中打印值时,我得到未定义。这正是我在此行 findMessage(1).then((res)=>console.log(res)); 上所期望的。但是,我得到了从 f1 函数返回给 findMessage 函数的整个对象。当在 findMessage 函数中找到所需的对象时,我会从数组中取回单个对象。所以它不想在数组中找不到记录时返回 undefined 。我不明白为什么在这种情况下我没有变得不确定


async function f1() {
  return await //some data from a backend
}

function findMessage(id) {
  return f1().then((mRes) => {
    let message = mRes.Messages.find(m => m.MessageId === id);
    console.log(message);
    return message;
  });
}

findMessage(1).then((res)=>console.log(res));

0 个答案:

没有答案