Javascript 未定义分配给变量返回的函数

Javascript 未定义分配给变量返回的函数,javascript,ecmascript-6,Javascript,Ecmascript 6,我创建了一个函数,将剪贴板的内容保存在变量文本中 我想将函数输出返回到另一个名为my_text的变量,但我无法这样做。 我必须这样做,因为我想对我的文本应用一些NLP算法 我得到我的\u文本未定义 function paste() { navigator.clipboard.readText() .then(text => { console.log(text); return text }) .catch(err => { console.

我创建了一个函数,将剪贴板的内容保存在变量
文本中

我想将函数输出返回到另一个名为
my_text
的变量,但我无法这样做。 我必须这样做,因为我想对我的文本应用一些NLP算法

我得到
我的\u文本未定义

function paste() {
  navigator.clipboard.readText()
  .then(text => {

    console.log(text);
    return text
  })
  .catch(err => {
    console.error("Failed to read clipboard contents: ", err);
  });

}

var my_text = paste()`

我认为这是因为我的函数
paste()
是异步的,但我仍然不确定如何将它返回的内容分配给变量。

您没有从函数返回任何内容,只返回内部函数

return navigator.clipboard.readText().then(...).catch(...);
或者,使用
async
函数

async function paste() {
  try {
    const text = await navigator.clipboard.readText();
    console.log(text);
    return text;
  } catch(er) {
    console.log(err);
  }
}

您没有从粘贴函数返回任何内容。试试这个

  function paste() {
    navigator.clipboard
      .readText()
      .then(text => {
        //call another function
        //or simply do the paste operation here
        processTextFurther(text);
      })
      .catch(err => {
        console.error("Failed to read clipboard contents: ", err);
      });
  }

  function processTextFurther(copiedText) {
    console.log(copiedText);
  }

放置
my_text=text
.then()
函数中。谢谢,我也试过了,但是我得到了:
[[PromiseStatus]]:“已解决”、[[PromiseValue]]:“未定义”
。我希望返回“文本”。如果我使用替代方法,我得到
wait仅在异步函数中有效
Fixed,请立即尝试@Prova12。谢谢,现在
[[PromiseValue]]:
包含我想要的文本。我必须找出如何将它分配给我的变量
my_text
,因为现在它返回承诺,而我只想返回
[[PromiseValue]]:
谢谢,现在
[[PromiseValue]]:
包含我想要的文本。我必须找出如何将其分配给我的变量my_text,因为现在它返回承诺,而我只想将其内容分配给
[[PromiseValue]]:
您可以将其分配到
processtextFuture
函数中,然后对其执行任何操作。