首页 > 解决方案 > 如何将字典变量设置为 for 循环内的承诺结果?

问题描述

实际上,我正在对用作 getPrices 函数的参数的字符串列表运行 for 循环。getPrices 是对 API 的获取请求,因此我确保在其上放置一个 .then 语句以获取结果。该结果被输入另一个名为“oneDay”的函数(没有异步功能)。我试图将 oneDay 的每个结果存储在一个名为“priceDict”的字典中,键是当前循环期间的字符串参数。问题是,无论我如何配置 .thens,我似乎都无法在字典中存储除 promises 之外的任何内容。

这个代码片段在运行后,只给了我一系列 priceDict 的承诺:

  var priceDict = {};
  for (const position of setPositions) {
    let positionFormula = function (somePosition) {
      return getPrices(somePosition).then((data) => {
        return oneDay(data, start, today, interval);
      });
    };
    let someBullshit = positionFormula(position);
    priceDict[position] = someBullshit.then(function (result) {
      return result;
    });
  }
  console.log(priceDict);

我怎样才能使 priceDict 实际上是结果,而不仅仅是 promise 对象?

标签: javascriptasync-awaitpromisefetch

解决方案


推荐阅读