将诺言的结果存储在变量中

安尼什·玛拉宾

嘿,所以我试图将一个Promise的结果存储在一个变量中,因为我有一些无法在Promise中运行的代码。

(我对node.js来说还很陌生,所以请稍加解释一下!)

我将如何使用异步等待?

这是我当前的代码:

const rbx = require("noblox.js")

var myblurb;
rbx.getBlurb(166962499).then(function (blurb) {
  myblurb = blurb;
});

console.log(myblurb);
永远学习

设置变量的函数将在函数完成后而不是在过程完成时被调用。因此,您的变量在调用后仍未定义,rbx.getBlurb因为它返回的promise将在以后完成。

使用异步/等待:

一种获得想要的东西的方法是使用await这只能在声明为的函数中完成async,这意味着该函数现在还将返回Promise。如果您对此表示满意,则可以这样做:

async function doStuff() {
  var myblurb;
  myblurb = await rbx.getBlurb(166962499);
  console.log(myblurb);
}

这告诉您的函数停止并等待,直到调用的承诺getBlurb已解决,然后将已解决的值分配给本地变量。

请注意,如果存在错误(诺言拒绝或抛出异常),则您的函数将传递该错误。您可以根据需要用try / catch包围所有内容。

然后在

如果您不想让函数返回一个Promise,则可以选择执行以下操作:

rbx.getBlurb(166962499).then(function (blurb) {
  const myblurb = blurb;
  console.log(myblurb);
  // myblurb is only useful within this 'then' resolve function
});

这只是意味着您必须执行其余功能,这些功能依赖于的myblurbresolve函数中的变量then

请注意,无论谁调用此代码,都需要了解它将是异步的,因此它应使用回调函数或Promise将其结果返回给调用方(如果需要)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将wc的结果存储在变量中

来自分类Dev

将列结果存储在变量中

来自分类Dev

For循环将结果存储在变量中

来自分类Dev

将命令的结果存储在变量中

来自分类Dev

将断言失败结果存储在变量中

来自分类Dev

将动态查询的结果存储在变量中

来自分类Dev

将sudo结果存储到变量中

来自分类Dev

将函数结果存储到变量中

来自分类Dev

将“查找”的结果存储在变量中?

来自分类Dev

将SVN命令的结果存储在变量中

来自分类Dev

将查询结果存储在 hive 变量中

来自分类Dev

将合约结果标签存储在变量中

来自分类Dev

将拆分函数的结果存储在变量中

来自分类Dev

将命令结果存储在变量更改结果中

来自分类Dev

如何将sed结果存储在tcsh中的变量中

来自分类Dev

如何将sed结果存储在tcsh中的变量中

来自分类Dev

将for循环结果存储为bash中的变量

来自分类Dev

是否可以将mixin的结果存储在变量中?

来自分类Dev

无法将结果存储到变量SQL中

来自分类Dev

将选择查询的结果存储到数组变量中

来自分类Dev

将xpath的结果存储到变量中以帮助将来查询

来自分类Dev

无法获取将结果存储到变量中的SQL查询

来自分类Dev

将SQL查询结果存储在pentaho变量中

来自分类Dev

使用csh将命令结果存储到变量中

来自分类Dev

Python Pandas将结果存储在变量中的麻烦

来自分类Dev

如何将mongodb查询结果存储在变量中?

来自分类Dev

如何将tail命令的结果存储在变量中?

来自分类Dev

将mysql结果存储在bash数组变量中

来自分类Dev

Excel VBA-将查找结果存储在范围变量中